QHostInfo QHostAddress QNetworkInterface QNetworkAddressEntry 网络模块(九)

1、QHostInfo:
利用操作系统所提供的查询机制来查询与特定主机名相关联的主机的IP地址,或者与一个IP地址相关联的主机名。

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

2、QHostAddress
提供一个IP地址,这个类提供一种独立于平台和协议的方式来保存IPv4和IPv6地址。

    QList<QHostAddress> list = QNetworkInterface::allAddresses();
    for (int i = 0; i < list.size(); i++)
        qDebug() << list.at(i);

3、QNetworkInterface
负责提供主机的IP地址和网络接口的列表

    QList<QNetworkInterface> interface = QNetworkInterface::allInterfaces();
    for (int i = 0; i < interface.size(); i++)
    {
        qDebug() << interface.at(i);
    }

4、QNetworkAddressEntry
由网络接口支持,存储了一个IP地址,子网掩码和广播地址,每个网络接口可以包含0个或多个IP地址,这些IP地址可以分别关联一个子网掩码和(或)一个广播地址(取决于操作系统的支持)。

for (int i = 0; i < interface.size(); i++)
    {
        QNetworkInterface item = interface.at(i);
        QList<QNetworkAddressEntry> entryList = item.addressEntries();
        qDebug() << "Interface: " << item.name();
        for (int j = 0; j < entryList.size(); j++)
        {
            qDebug() << "Item #" << j ;
            qDebug() << "IP       : " << entryList.at(j).ip();
            qDebug() << "Netmask  : " << entryList.at(j).netmask();
            qDebug() << "Broadcast: " << entryList.at(j).broadcast();
        }
    }
发布了37 篇原创文章 · 获赞 1 · 访问量 4886

猜你喜欢

转载自blog.csdn.net/u010906468/article/details/105034035