QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
1.获取计算机名称:
/* * 名称:get_localmachine_name * 功能:获取本机机器名称 * 参数:no * 返回:QString */ QString CafesClient::get_localmachine_name() { QString machineName = QHostInfo::localHostName(); return machineName; }
2.获取本机IP地址
/* * 名称:get_localmachine_ip * 功能:获取本机的IP地址 * 参数:no * 返回:QString */ QString CafesClient::get_localmachine_ip() { QString ipAddress; QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); // use the first non-localhost IPv4 address for (int i = 0; i < ipAddressesList.size(); ++i) { if (ipAddressesList.at(i) != QHostAddress::LocalHost && ipAddressesList.at(i).toIPv4Address()) { ipAddress = ipAddressesList.at(i).toString(); break; } } // if we did not find one, use IPv4 localhost if (ipAddress.isEmpty()) ipAddress = QHostAddress(QHostAddress::LocalHost).toString(); return ipAddress; }
3.获取本机网络连接名、MAC地址
/* * 名称:get_localmachine_mac * 功能:获取本机的MAC地址 * 参数:no * 返回:void */ QString CafesClient::get_localmachine_mac() { QList<QNetworkInterface> nets = QNetworkInterface::allInterfaces(); int i = 0; foreach(QNetworkInterface ni,nets) { i++; qDebug()<<i<<ni.name()<<ni.hardwareAddress()<<ni.humanReadableName(); } }
4.获取本机子网掩码、广播地址
在上个函数的环境下 QList<QNetworkAddressEntry> entryList =interface.addressEntries(); 10. //获取IP地址条目列表,每个条目中包含一个IP地址,一个子网掩码和一个广播地址 11. foreach(QNetworkAddressEntry entry,entryList) 12. {//遍历每一个IP地址条目 13. qDebug()<<”IP Address: “<<entry.ip().toString(); 14. //IP地址 15. qDebug()<<”Netmask: “<<entry.netmask().toString(); 16. //子网掩码 17. qDebug()<<”Broadcast: “<<entry.broadcast().toString(); 18. //广播地址 19. }