Qt 獲取本機的IP地址、Mac地址
阿新 • • 發佈:2019-01-30
獲取IP地址
QString getHostIpAddress() { QString strIpAddress; QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); // 獲取第一個本主機的IPv4地址 int nListSize = ipAddressesList.size(); for (int i = 0; i < nListSize; ++i) { if (ipAddressesList.at(i) != QHostAddress::LocalHost && ipAddressesList.at(i).toIPv4Address()) { strIpAddress = ipAddressesList.at(i).toString(); break; } } // 如果沒有找到,則以本地IP地址為IP if (strIpAddress.isEmpty()) strIpAddress = QHostAddress(QHostAddress::LocalHost).toString(); return strIpAddress; }
獲取Mac地址
需要新增標頭檔案QString getHostMacAddress() { QList<QNetworkInterface> nets = QNetworkInterface::allInterfaces();// 獲取所有網路介面列表 int nCnt = nets.count(); QString strMacAddr = ""; for(int i = 0; i < nCnt; i ++) { // 如果此網路介面被啟用並且正在執行並且不是迴環地址,則就是我們需要找的Mac地址 if(nets[i].flags().testFlag(QNetworkInterface::IsUp) && nets[i].flags().testFlag(QNetworkInterface::IsRunning) && !nets[i].flags().testFlag(QNetworkInterface::IsLoopBack)) { strMacAddr = nets[i].hardwareAddress(); break; } } return strMacAddr; }
#include <QNetworkInterface>
#include <QList>