如何获取我当前连接的网络中的本地IP地址?

时间:2016-06-04 18:57:25

标签: c++ qt networking

我知道我可以使用QNetworkInterface::allAddresses(),但这也会给我带来许多我根本不需要的IP,例如虚拟网络。
我无法connectToHost()并查看套接字localAddress(),我的程序将用于与互联网分离的网络中,因此我无法连接到Google DNS /任何可靠的内容

有没有办法从列表allAddresses()中过滤地址,还是我可以使用其他Qt功能?

1 个答案:

答案 0 :(得分:0)

这应该做的工作:

auto allNetworkAddresses = QNetworkInterface::allAddresses();
for (const auto& address : allNetworkAddresses)
{
    if (address.protocol() == QAbstractSocket::IPv4Protocol && 
        address != QHostAddress(QHostAddress::LocalHost))
    {
         //use adress in any way needed
    }
}