通过IP地址检测服务​​器是否在本地运行

时间:2013-11-06 13:25:49

标签: c++ qt ip-address

我的程序使用Bonjour获取在本地网络上的各种IP地址上运行的服务器列表,但其中一个或多个可能在同一台计算机上运行。

我需要通过检查其IP地址来了解服务器是否在同一台计算机上运行。

例如,127.0.0.1192.168.0.100192.168.56.1上的服务器都在我的本地计算机上运行,​​但192.168.0.104192.168.56.2上的服务器正在运行将在另一台机器上运行。

1 个答案:

答案 0 :(得分:2)

QNeworkInterfaces类有一个可以调用的静态函数: -

QList<QHostAddress> addressList = QNetworkInterfaces::allAddresses();

然后,您可以遍历addressList并将其与服务器地址进行比较: -

bool IsLocalServer()
{
    QList<QHostAddress> addressList = QNetworkInterfaces::allAddresses();

    foreach(QHostAddress address, addressList)
    {
        if(address == QHostAddress("192.168.0.100")
            return true;
        else if(address == QHostAddress("192.168.56.1")
            return true;
    }
    return false;
}