QT5獲取本機資訊
阿新 • • 發佈:2018-11-29
獲取主機名稱
/*
* 名稱:get_localmachine_name
* 功能:獲取本機機器名稱
* 引數:no
* 返回:QString
*/
QString CafesClient::get_localmachine_name()
{
QString machineName = QHostInfo::localHostName();
return machineName;
}
獲取本機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; }
獲取本機網路連線名、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(); } }
獲取本機子網掩碼、廣播地址
//在上個函式的環境下 QList<QNetworkAddressEntry> entryList =interface.addressEntries(); //獲取IP地址條目列表,每個條目中包含一個IP地址,一個子網掩碼和一個廣播地址 foreach(QNetworkAddressEntry entry,entryList) { //遍歷每一個IP地址條目 qDebug()<<”IP Address: “<<entry.ip().toString(); //IP地址 qDebug()<<”Netmask: “<<entry.netmask().toString(); //子網掩碼 qDebug()<<”Broadcast: “<<entry.broadcast().toString(); //廣播地址 }
參考文章:https://www.yuque.com/docs/share/d8a4084b-525a-4957-a93d-d718a5893051