您的位置:首页 > 编程语言 > Qt开发

qt获取”本地连接“的IP

2016-06-03 18:20 816 查看
最近查了一下用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是网卡的名字,像我的电脑上只有一张无线网卡和一张有线网卡,所以可以选择参数的是“无线网络连接”和“本地连接”。
如果不知道自己的网卡叫什么名字,可以把绿色部分的注释有效,看看自己的网卡叫什么名字,然后根据这些名字来选择筛选。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt 本地连接 获取ip