0

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

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

例如, 、 和 上的服务器127.0.0.1192.168.0.100192.168.56.1我的本地计算机上运行,​​但在192.168.0.104或上的服务器192.168.56.2将在另一台计算机上运行。

4

1 回答 1

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;
}
于 2013-11-06T14:36:42.683 回答