QT访问本机IP地址

问题描述:

在QT中访问主机IP,为何只获得了127.0.0.1虚拟IP地址,无法理解~~~

学习背景

QT中访问主机IP地址主要使用两个类:QHostInfo与QNetworkInterface类

1.QHostInfo类访问主机IP地址代码:


    QString hostName=QHostInfo::localHostName();//主机信息查询:返回本机主机名


    //测试
    //qDebug()<< "本地DNS域名:"< addList=hostInfo.addresses();//创建一个QList对象,容器内部存储QHostAddress类型的数据,返回一个address数组,QHostAddress类提供一个IP地址的信息,包括IPv4和Ipv

    //返回一个与hostname关联的IP地址列表,该列表可能为空
    //测试
    //qDebug()<

注:此方法在默认情况下返回的IP地址为127.0.0.1,此地址为虚拟地址(本地环回地址),即只能通过TCP与本机通信。(原因是:在虚拟机中默认域名是localhost,localhost默认的IP地址为127.0.0.1、::1),如下图所示为localhost.localdomain文件配置,默认的IP地址

QT访问本机IP地址_第1张图片

2.QNetworkInterface类访问主机IP地址代码

QList list=QNetworkInterface::allInterfaces();//获取网络接口

for(int i=0;i entryList=aInterface.addressEntries();

for(int j=0;j

QT访问本机IP地址_第2张图片

Lo表示环回接口;

Ens33表示以太网卡

Virbr0表示虚拟网桥网卡

因此,本虚拟机的IP地址应该为192.168.88.139

你可能感兴趣的:(QT,qt,学习,tcp/ip)