QHostInfo是Qt中的一个类,用于获取主机信息。它可以用来查找IP地址、主机名和别名等信息。
使用QHostInfo需要创建一个对象,并调用lookupHost()函数传入要查询的主机名或IP地址。该函数会发出一条网络请求并返回一个唯一标识符,可以通过信号-槽机制来处理查询结果。
例如:
QHostInfo::lookupHost("www.baidu.com", this, SLOT(lookupFinished(QHostInfo)));
这里我们调用了lookupHost()函数来查询百度的IP地址,然后将结果发送到槽函数lookupFinished()中进行处理。
接下来我们看一下QHostInfo类的常用属性和方法:
- hostName:主机名
- addresses:IP地址列表
- aliases:别名列表
方法:
- lookupId():返回查询的唯一标识符
- errorString():返回错误信息字符串
例如,在上面的例子中,我们可以在槽函数lookupFinished()中对结果进行处理:
void MyClass::lookupFinished(const QHostInfo &host)
{
if (host.error() != QHostInfo::NoError) {
qDebug() << "Lookup failed:" << host.errorString();
return;
}
qDebug() << "Hostname:" << host.hostName();
foreach (const QHostAddress &address, host.addresses())
qDebug() << "Address:" << address.toString();
}
这里首先判断是否有错误发生,如果没有则输出主机名和IP地址列表。注意,addresses()函数返回的是一个QList