QT获取IP地址的方法
方法一:
1.获取主机名:
#include<QtNetwork>//需要的头文件
QString localhostName = QHostInfo::localHostName();
2.通过主机名获取IP地址:
QHostInfo info = QHostInfo::fromName(localhostName);
//返回值是该主机名的信信息
//获取主机名关联的IP地址
QHostAddress address = info.addresses()
address //包含ipv4和ipv6
想取出IPV4;
for(QHostAddress address:info.addresses())
{
if(address.protocol()==QAbstractSocket::IPv4Protocol)
{
address.toString();
}
}
方法二:通过QNetworkInterface类:可以获得运行当前应用程序的主机的网络接口。
//allinterfaces静态函数:获得所有接口.
QList<QNetworkInterface>list = QNetworkInterface::allInterfaces();
//遍历每一个网络接口
foreach (QNetworkInterface qnetworkinterface, list) {
QDebug()<<"接口名称:"<<qnetworkinterface.name();
QDebug()<<"硬件地址名称:"<<qnetworkinterface.hardwareAddress();
//获取ip地址条目
QList<QNetworkAddressEntry> entries = qnetworkinterface.addressEntries();
foreach (QNetworkAddressEntry ip, entries) {
QDebug()<<"ip地址"<<ip.ip.toString();
QDebug()<<"子网掩码:"<<ip.netmask().toString();
QDebug()<<"广播地址"<<ip.broadcast().toString();
}