Qt获取IP地址

来源:互联网 发布:matlab解矩阵方程 编辑:程序博客网 时间:2024/05/23 13:00

前言

每台设备根据网络设置可能会存在多个IP,通过Qt获取IP的时候不能只取其中一个,这里的方法是通过Qt的接口取循环获取,最终生成IP地址列表,然后连接成一个字符串。

正文

废话不多说,直接看代码。

QString ALMessager::getIPAddr(){    QStringList ips;    QList<QNetworkInterface> networkinterfaces = QNetworkInterface::allInterfaces();    foreach (QNetworkInterface interface, networkinterfaces)    {        QNetworkInterface::InterfaceFlags t_interFlags =  interface.flags();        if(t_interFlags & QNetworkInterface::IsUp &&           t_interFlags & QNetworkInterface::IsRunning)        {            foreach (QNetworkAddressEntry entry, interface.addressEntries())            {                if (entry.ip() != QHostAddress::LocalHost                    && entry.ip().protocol() == QAbstractSocket::IPv4Protocol                    )                {                    ips.append(entry.ip().toString());                }            }        }    }    return ips.join("|");}

代码很简单,直接用就好。如果存在多个IP,是通过”|”来分隔开的。

原创粉丝点击