最近做的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 即解决。
来源:CSDN
作者:liyuxia_1991
链接:https://blog.csdn.net/iamplane/article/details/70689899