Qt 获取本机本地网卡的IPv4地址
本文介绍怎么用Qt去获取本机的ipv4地址
文章目录
用法
话不多说,直接上代码:
QHostAddress hostIP()
{
auto list = QNetworkInterface::allInterfaces();
foreach (QNetworkInterface interface, list) {
// 1. 首先判断是不是以太网,过滤WiFi
if (interface.type() != QNetworkInterface::Ethernet)
continue;
// 2. 如果有安装VMware虚拟机的话,会出现两个虚拟网卡
// 匹配关键字"VMware"。来过滤虚拟网卡
if (interface.humanReadableName().contains("VMware"))
continue;
// 3. 一般都会有两个ip地址,一个ipv4一个ipv6地址
// 根据协议版本,来过滤掉ipv6地址
foreach (auto entry ,interface.addressEntries()) {
if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol)
return entry.ip();
}
}
return QHostAddress();
}