Qt网络编程:QHostInfo(主机信息)

一、描述

QHostInfo 查找与主机名关联的 IP 地址,或与 IP 地址关联的主机名。

二、类型成员

1、QHostInfo::HostInfoError:此枚举描述了尝试解析主机名时可能发生的各种错误。

  • NoError:无错误。
  • HostNotFound:找不到主机的 IP 地址。
  • UnknownError:出现未知错误。

三、成员函数

1、[static] void abortHostLookup(int id)

lookupHost() 查询主机信息时,会返回一个查询 ID。使用ID终止主机查找。

2、QList<QHostAddress> addresses()

返回与 hostName() 关联的 IP 地址列表。QHostAddress

    QHostInfo info = QHostInfo::fromName(QHostInfo::localHostName());
    qDebug()  <<info.addresses();

    QHostInfo info = QHostInfo::fromName("www.baidu.com");
    qDebug()  <<info.addresses();

 

应用:输出IPv4的地址

    QHostInfo info;
    foreach(QHostAddress address,info.addresses())  
    {  
        if(address.protocol() == QAbstractSocket::IPv4Protocol)   
            qDebug() << address.toString();  
    }

3、QHostInfo::HostInfoError error()

返回主机名查找失败时发生的错误类型。

4、QString errorString()

如果查找失败,此函数将返回可读的错误描述。否则返回“"Unknown error”。

5、[static] QHostInfo fromName(const QString &name) 

查找给定主机名的 IP 地址。查找期间的功能块意味着程序的执行将阻塞。如果IP字符串 地址传递给 name,QHostInfo 将搜索 IP 的域名。(见上面第二个函数)

6、QString hostName()

返回查找的 IP 地址的主机的名称。

    QHostInfo info = QHostInfo::fromName("www.baidu.com");
    qDebug()  <<info.hostName();

    QHostInfo info = QHostInfo::fromName("192.168.0.102");
    qDebug()  <<info.hostName()<<info.errorString();

7、[static] QString localDomainName()

返回本机的 DNS 域。(与在 Windows 网络中找到的域名无关)。

8、[static] QString localHostName()

如果已配置,则返回此机器的主机名。此函数返回与 QSysInfo::machineHostName() 相同的值。

9、[static] int lookupHost(const QString &name, QObject *receiver, const char *member)

     [static] template <typename Functor> int lookupHost(const QString &name, Functor functor)

查找与主机名 name 关联的 IP 地址,并返回查找的 ID。当查找有结果将触发槽函数。如果IP字符串 地址传递给 name,QHostInfo 将搜索 IP 的域名,(即QHostInfo 将执行反向查找)。成功后,生成的 QHostInfo 将包含主机名的解析域名和 IP 地址。 

    int id{-1};
    id = QHostInfo::lookupHost("www.baidu.com",[&id](QHostInfo info)
    {
        qDebug()<<id<<info.addresses();
    });
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值