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