QT获取本地IP地址


QT for Android 需要开发一个FTP客户端,中间遇到无数难题,其中有一个就是获取本地IP地址;由于本人接触QT时间不长,对API函数等的理解不够深入,忘记了网络通信中关于本机回环地址描述,导致客户端出现随机连接不上的现象:

本地地址无效;

最终定位发现是获取本地IP地址的时候出现127.0.0.1的地址,导致外部识别不了。这样的话如果是主动模式刚好碰到这个IP就会出现上面的错误,于是修改代码并将完整代码贴出:

void CFTPclient::GetIPS()
{
    QList<QHostAddress> list = QNetworkInterface::allAddresses();
    foreach (QHostAddress address, list)
    {
       if(address.protocol() == QAbstractSocket::IPv4Protocol)
       //我们使用IPv4地址
       {
            SetIPAddr(address.toString());
            if("127.0.0.1" == GetIPAddr())
            {
                continue;
            }
            break;
       }
    }
}

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM