QT笔记——初识QHostInfo、QHostAddress、QNetworkInterface

网络模块需要在.pro文件中添加 QT += network

QHostInfo 利用操作系统提供的查询机制来查询与特定主机名相关联的主机的 IP 地址

头文件:#include<QHostInfo>

//获取本机的名称
QString loaclHostName = QHostInfo::localHostName();
qDebug()<<"本机名称为:"<<loaclHostName;

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

头文件:#include<QHostAddress>

//通过本机名获取本机对象
QHostInfo info = QHostInfo::fromName(loaclHostName);
//获取所有的IP地址
QList<QHostAddress> allAddresslist = info.addresses();
foreach(QHostAddress address, allAddresslist)
{
	//协议为IPv4时
    if(address.protocol() == QAbstractSocket::IPv4Protocol)
    {
         qDebug()<<"IP地址为:"<<address.toString();
    }
}

QNetworkInterface类提供了程序所运行时的主机的IP地址和网络接口信息的列表。在每一个网络接口信息中都包含了0个或多个IP地址,而每一个IP地址又包含了和它相关的子网掩码和广播地址,它们三者被封装在一个QNetworkAddressEntry对象中。

头文件:#include<QNetworkInterface>

     QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();
     //遍历每一个网络接口
     foreach(QNetworkInterface interface,list)
     {
        qDebug() << "设备名: "<<interface.name();
        qDebug() << "硬件地址: "<<interface.hardwareAddress();
        //获取IP地址条目列表,每个条目中包含一个IP地址,一个子网掩码和一个广播地址
        QList<QNetworkAddressEntry> entryList = interface.addressEntries();
        //遍历每一个IP地址条目
        foreach(QNetworkAddressEntry entry,entryList)
        {
           qDebug()<<"IP地址: "<<entry.ip().toString();
           qDebug()<<"子网掩码: "<<entry.netmask().toString();
           qDebug()<<"广播地址: "<<entry.broadcast().toString();
        }
     }

在这里插入图片描述
参考博客:https://blog.csdn.net/flowerspring/article/details/51001597

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值