QT开发中文网

qt获取本地ip地址,过滤127.0.0.1

在Qt中,可以使用QNetworkInterface类来获取本地的IP地址列表,并且过滤掉127.0.0.1。

以下是一个示例代码:

#include <QNetworkInterface>
#include <QDebug>

int main(int argc, char *argv[])
{
    Q_UNUSED(argc);
    Q_UNUSED(argv);

    QList<QHostAddress> ipAddressesList;

    // 获取所有网络接口
    QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();

    // 遍历每个网络接口
    foreach (QNetworkInterface interface, interfaces)
    {
        // 过滤回环接口和非运行状态的接口
        if (interface.flags().testFlag(QNetworkInterface::IsLoopBack) || !interface.isValid())
            continue;

        // 获取该接口下的IP地址列表
        QList<QNetworkAddressEntry> addressEntries = interface.addressEntries();

        // 遍历每个IP地址条目
        foreach (QNetworkAddressEntry entry, addressEntries)
        {
            // 如果不是IPv4地址,则跳过
            if (entry.ip().protocol() != QAbstractSocket::IPv4Protocol)
                continue;

            // 获取IPv4地址字符串表示形式
            QString ipAddress = entry.ip().toString();

            // 过滤掉127.0.0.1地址
            if (ipAddress != "127.0.0.1")
                ipAddressesList.append(entry.ip());
        }
    }

    // 打印过滤后的IP地址列表
    foreach (QHostAddress address, ipAddressesList)
    {
        qDebug() << address.toString();
    }

   return 0;
}

这段代码遍历了所有网络接口,然后获取每个接口下的IP地址列表,并将过滤掉的IP地址添加到ipAddressesList中。最后,打印出过滤后的IP地址列表。

请注意,要使用Qt网络模块,需要在.pro文件中添加 QT += network 来链接网络模块。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=11745

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?