Get local IP address in Qt

前端 未结 6 1211
借酒劲吻你
借酒劲吻你 2020-12-05 17:26

Is there a cross-platform way to get the local IP address (i.e. something that looks like 192.168.1.49) of the computer using Qt?

I want to make an FTP

6条回答
  •  一整个雨季
    2020-12-05 18:05

    Here is the code I implemented to get: name, IP, netmask and mac address of localhost.

       QString localhostname =  QHostInfo::localHostName();
       QString localhostIP;
       QList hostList = QHostInfo::fromName(localhostname).addresses();
       foreach (const QHostAddress& address, hostList) {
           if (address.protocol() == QAbstractSocket::IPv4Protocol && address.isLoopback() == false) {
                localhostIP = address.toString();
           }
       }
       QString localMacAddress;
       QString localNetmask;
       foreach (const QNetworkInterface& networkInterface, QNetworkInterface::allInterfaces()) {
           foreach (const QNetworkAddressEntry& entry, networkInterface.addressEntries()) {
               if (entry.ip().toString() == localhostIP) {
                   localMacAddress = networkInterface.hardwareAddress();
                   localNetmask = entry.netmask().toString();
                   break;
               }
           }
       }
       qDebug() << "Localhost name: " << localhostname;
       qDebug() << "IP = " << localhostIP;
       qDebug() << "MAC = " << localMacAddress;
       qDebug() << "Netmask = " << localNetmask;
    

提交回复
热议问题