我的程序使用 Bonjour 来获取在本地网络上的各种 IP 地址上运行的服务器列表,但其中一个或多个可能在同一台机器上运行。
我需要通过检查其 IP 地址来了解服务器是否在同一台机器上运行。
例如, 、 和 上的服务器127.0.0.1
都192.168.0.100
在192.168.56.1
我的本地计算机上运行,但在192.168.0.104
或上的服务器192.168.56.2
将在另一台计算机上运行。
我的程序使用 Bonjour 来获取在本地网络上的各种 IP 地址上运行的服务器列表,但其中一个或多个可能在同一台机器上运行。
我需要通过检查其 IP 地址来了解服务器是否在同一台机器上运行。
例如, 、 和 上的服务器127.0.0.1
都192.168.0.100
在192.168.56.1
我的本地计算机上运行,但在192.168.0.104
或上的服务器192.168.56.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;
}