Qt 应用获取本机设备IP

半世苍凉 提交于 2019-12-09 11:47:22

最近做的tpu应用需要在ubuntu 和linux(busybox )上运行,需要实现获取本机IP的功能,实现过程详细记录一下,方便以后查找参考。

本人使用的Qt版本是5.6.2,。Qt应用获取本机设备IP地址使用QHostAddress类,代码如下:

QString SystemInfoMain::getLocalIp()
{

    QString mIpAddress;
    QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses();
    // use the first non-localhost IPv4 address
    for (int i = 0; i < ipAddressesList.size(); ++i) {
        if (ipAddressesList.at(i) != QHostAddress::LocalHost &&
            ipAddressesList.at(i).toIPv4Address()) {
            mIpAddress = ipAddressesList.at(i).toString();
            break;
        }
    }
    // if we did not find one, use IPv4 localhost
    if (mIpAddress.isEmpty())
        mIpAddress = QHostAddress(QHostAddress::LocalHost).toString();
    return mIpAddress;
}

注意:包含QHostAddress,QNetworkInterface类的头文件。

本人在include QHostAddress,QNetworkInterface类的头文件后,编译还是提示:

QHostAddress:No Such file or directory.

QNetworkInterface:No Such file or directory.

包含了头文件,编译时还提示找不到QHostAddress,QNetworkInterface类,解决办法:

在工程的.pro文件中加上 QT += network 即解决。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!