获取本机的IP地址
首先获取本地的主机名称,QString hostname = QHostInfo::localHostName();
然后根据主机名称,来获取"IP地址"。QHostInfo hostinfo = QHostInfo::fromName(hostname);但是这里的IP地址不只是IP地址。是一个总信息的集合
hostinfo中通过addresses()函数来直接获取地址列表:QList<QHostAddress> addList = hostinfo.addresses();
剩下的内容就从这个列表中分离每一项的地址,然后判定是iPv4/ipv6.然后通过tostring()将其转换成字符串使用即可。
完整代码如下:
QString MainWindow::getlockIp()
{
//获取IPv4地址
QString hostname = QHostInfo::localHostName();
QHostInfo hostinfo = QHostInfo::fromName(hostname);
QString localip = "";
QList<QHostAddress> addList = hostinfo.addresses();
if(!addList.isEmpty())
for(int i = 0;i<addList.size();i++)
{
QHostAddress aHost = addList.at(i);
if(QAbstractSocket::IPv4Protocol == aHost.protocol())
{
localip = aHost.toString();
break;
}
}
return localip;
}
Qt中如何获取Ip地址
最新推荐文章于 2023-10-24 23:44:41 发布