Loading

Qt 获取本机ipv4地址

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();
}
posted @ 2022-09-03 19:46  师从名剑山  阅读(238)  评论(0编辑  收藏  举报