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;
}
其中,输入参数netInterfaceName是网卡的名字,像我的电脑上只有一张无线网卡和一张有线网卡,所以可以选择参数的是“无线网络连接”和“本地连接”。
如果不知道自己的网卡叫什么名字,可以把绿色部分的注释有效,看看自己的网卡叫什么名字,然后根据这些名字来选择筛选。
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学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- Qt定时器和随机数详解
- asp.net 获取IP的相关资料
- Qt实现图片移动实例(图文教程)
- php获取访问者IP地址汇总
- 开机自动启用本地连接,用cmd禁用启用本地连接
- ASP.NET获取真正的客户端IP地址的6种方法
- Qt for Android开发实例教程
- QModelIndex/Role/Model介紹<二>
- Qt Model/View/Delegate浅谈 - QAbstractListModel
- Qt Model/View/Delegate浅谈 - roleNames()
- QT历程(一):与CryptoJs对应的AES加密
- 基于PyQt5的快速开发框架QFramer
- OSX下安装PyQt
- ok6410开发板移植DirectFB手记
- 【笔记】给Qt内嵌一个Chrome吧
- 【算法】最短路径之A*搜索
- qt入门必备