qt获取”本地连接“的IP

最近查了一下用qt如何获取,其实网上都有很多方法,而且都能够获取,但是大多数是用的遍历的方法,不能够筛选。所以自己就写了一个程序,一台电脑上只有一张无线网卡和一张有线网卡是可以区分的,如果多了的话,就没有试过了(没有这么多网卡),所以贴出来以免以后忘了,也方便大家参考。

QString MainWindow::getLocalIp(QString netInterfaceName)
{
    QString ipAddr;
    QList<QNetworkInterface> network = QNetworkInterface::allInterfaces();

    foreach (QNetworkInterface net, network)
    {
        <span style="color:#ff0000;">QString netName = net.humanReadableName();</span>
<span style="white-space:pre">	</span><span style="color:#33ff33;">//qDebug() << netName;</span>
        if (netName == netInterfaceName)
        {
            QList<QNetworkAddressEntry> allIP = net.addressEntries();
            foreach(QNetworkAddressEntry ip, allIP)
            {
                if (ip.ip().protocol() == QAbstractSocket::IPv4Protocol)
                {
                    ipAddr = ip.ip().toString();
                }
            }
        }
    }

    return ipAddr;
}
<pre name="code" class="cpp">void MainWindow::showIP()
{
    ui->showInfoText->clear();

    QString localIP = getLocalIp(QStringLiteral("本地连接"));

    ui->showInfoText->append("ip: " + localIP);
}


 


其中,输入参数netInterfaceName是网卡的名字,像我的电脑上只有一张无线网卡和一张有线网卡,所以可以选择参数的是“无线网络连接”和“本地连接”。

如果不知道自己的网卡叫什么名字,可以把绿色部分的注释有效,看看自己的网卡叫什么名字,然后根据这些名字来选择筛选。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值