快捷搜索: 王者荣耀 脱发

QT 中获取本机ip的方法

记录自己在学习中遇到的问题:

在使用tcp时绑定自己的端口号时,每次都要手动输入或者在代码编写的时候固定死。就在想有没有便捷的方法,于是我便找到了一种不太美好的解决方法:

QList QNetworkInterface::allAddresses () [static] This convenience function returns all IP addresses found on the host machine. It is equivalent to calling addressEntries() on all the objects returned by allInterfaces() to obtain lists of QHostAddress objects then calling QHostAddress::ip() on each of these. 程序中使用一个label来显示获取的ip,程序如下: #include <QtNetwork> ui->iplabel->setText(QNetworkInterface().allAddresses().at(0).toString()); //编译出错,需要在工程pro文件中添加,在 QT += core gui network

于是乎便又去寻找:

QHostAddress addr;
    //通过遍历获取到本机ip
    QHostInfo info = QHostInfo::fromName(QHostInfo::localHostName());
      foreach(QHostAddress address,info.addresses())
      {
        if(address.protocol()==QAbstractSocket::IPv4Protocol)
        {
          qDebug()<<address.toString(); //输出IPV4的地址
          addr=address;
        }
      }

虽说打印了两次,但结果来说应该是可行的,后续再找到啥方法就再补充。

经验分享 程序员 微信小程序 职场和发展