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