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

Detect that a server is running locally by its IP address

本文关键字:是否 运行 服务器 检测 IP 地址      更新时间:2023-10-16

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

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

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

QNeworkInterfaces 类有一个静态函数,你可以调用它: -

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

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

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;
}