• 8780阅读
  • 4回复

qt4如何获取本机多个网卡的ip [复制链接]

上一主题 下一主题
离线uidab
 

只看楼主 倒序阅读 楼主  发表于: 2011-02-18
        本来是一个网卡,现在开了蓝牙和无线的网卡后发现不能正确获得ip
该怎么处理?

谢谢各位高手帮助.
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线wxj120bw

只看该作者 1楼 发表于: 2011-02-18
qt获取多网卡不清楚,不过可以考虑用win32 api函数来做。
离线XChinux

只看该作者 2楼 发表于: 2011-02-18
QNetworkInterface
看看够不够用.
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线uidab

只看该作者 3楼 发表于: 2011-02-18
获取本机ip的代码如下.

    QList<QHostAddress> list = QNetworkInterface::allAddresses();
    foreach (QHostAddress address, list)
    {
        qDebug() << address.toString();
       if(address.protocol() == QAbstractSocket::IPv4Protocol)//我们使用IPv4地址
            return address.toString();
    }

debug输出还是不对.
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线hehui

只看该作者 4楼 发表于: 2011-04-09
楼主多看看文档吧~

  1.   QList<QHostAddress> NetworkUtilities::validIPAddresses(){
  2.      QList<QHostAddress> ipAddresses;
  3.      foreach (QNetworkInterface interface, QNetworkInterface::allInterfaces()) {
  4.          foreach (QNetworkAddressEntry entry, interface.addressEntries()) {
  5.              qDebug()<<"entry.ip():"<<entry.ip().toString();
  6.              QHostAddress broadcastAddress = entry.broadcast();
  7.              if (broadcastAddress != QHostAddress::Null &&
  8.                  entry.ip() != QHostAddress::LocalHost) {
  9.                  ipAddresses << entry.ip();
  10.              }
  11.          }
  12.      }
  13.      return ipAddresses;
  14. }

[ 此帖被hehui在2011-04-09 15:19重新编辑 ]
快速回复
限100 字节
 
上一个 下一个