QT获取本机IP和MAC地址的方法
2010-07-01 08:01
381 查看
QNetworkInterface localInterface =localInterface.interfaceFromName("设备名称 例如 eth0");
QString MAC =localInterface.hardwareAddress()/* "90:FB:A6:11:52:63"*/;
int localNetmask = 0xFFFFFF00;
int localIP ;
for(int i =0; i < localInterface.addressEntries().size(); i ++)
{
if( !localInterface.addressEntries().at(i).ip().isNull() &&localInterface.addressEntries().at(i).ip().protocol()==QAbstractSocket::IPv4Protocol)
{
localIP = localInterface.addressEntries().at(i).ip().toIPv4Address();
localNetmask = localInterface.addressEntries().at(i).netmask().toIPv4Address();
break;
}
}
以上方法貌似某些情况下也不好使,可以试试下面的方法:
QString localHostName=QHostInfo::localHostName();
QHostInfo hostInfo=QHostInfo::fromName(localHostName);
QList<QHostAddress>listAddress=hostInfo.addresses();
for(int j = 0; j < listAddress.size(); j++)
{
if(!listAddress.at(j).isNull() && listAddress.at(j).protocol() == QAbstractSocket::IPv4Protocol
&& listAddress.at(j) != QHostAddress::LocalHost)
{
emit this->sendMsg(listAddress.at(j).toString());
break;
}
}
获取本机有效IP地址、掩码、网关、MAC地址,一直以来我都没找到有效方法,以前用MFC时也是这样,真无语了...
[/code]
QString MAC =localInterface.hardwareAddress()/* "90:FB:A6:11:52:63"*/;
int localNetmask = 0xFFFFFF00;
int localIP ;
for(int i =0; i < localInterface.addressEntries().size(); i ++)
{
if( !localInterface.addressEntries().at(i).ip().isNull() &&localInterface.addressEntries().at(i).ip().protocol()==QAbstractSocket::IPv4Protocol)
{
localIP = localInterface.addressEntries().at(i).ip().toIPv4Address();
localNetmask = localInterface.addressEntries().at(i).netmask().toIPv4Address();
break;
}
}
以上方法貌似某些情况下也不好使,可以试试下面的方法:
QString localHostName=QHostInfo::localHostName();
QHostInfo hostInfo=QHostInfo::fromName(localHostName);
QList<QHostAddress>listAddress=hostInfo.addresses();
for(int j = 0; j < listAddress.size(); j++)
{
if(!listAddress.at(j).isNull() && listAddress.at(j).protocol() == QAbstractSocket::IPv4Protocol
&& listAddress.at(j) != QHostAddress::LocalHost)
{
emit this->sendMsg(listAddress.at(j).toString());
break;
}
}
获取本机有效IP地址、掩码、网关、MAC地址,一直以来我都没找到有效方法,以前用MFC时也是这样,真无语了...
再或者:
[code] QList<QHostAddress>listAddress = QNetworkInterface::allAddresses();for(int j = 0; j < listAddress.size(); j++) { if(!listAddress.at(j).isNull() && listAddress.at(j).protocol() == QAbstractSocket::IPv4Protocol && listAddress.at(j) != QHostAddress::LocalHost) { localIPAddress = listAddress.at(j).toString(); break; } } |
相关文章推荐
- JS获取计算机mac地址以及IP的实现方法
- C#获取IP及MAC地址 方法
- QT 获取本地IP MAC地址
- JS获取计算机mac地址以及IP的实现方法
- 获取客户端ip和mac地址的方法总结
- 获取IP/MAC地址方法
- C# ManagementObjectSearcher方法获取IP和MAC地址
- Android系统下获取本地IP和mac地址的方法
- 如何用C语言获取网卡的mac地址?(当然,你也可以用类似方法获取所有ip)
- qt 获取本机网络信息(IP等)方法
- java获取登陆用户ip和mac地址的方法
- qt获取本机ip,本地ip,qhostaddress qnetworkinterface
- qt获取本地IP
- 利用新浪api获取ip归属地 - QtSharp - 博客园
- 干货:Java正确获取客户端真实IP方法整理
- C#获取本地计算机名,IP,MAC地址,硬盘ID
- 获取本机IP MAC地址
- Android高手进阶教程(十一)之----Android 通用获取Ip的方法(判断手机是否联网的方法)!
- ASP.NET实现根据IP获取省市地址的方法
- qt获取内网IP、外网IP和Mac地址