我在C#中使用Bonjour来获取本地网络中IP摄像机的IP地址。我用GetAddrInfo(...)
这样做了。找到地址后,将调用此方法:
private static void eventManager_AddressFound(DNSSDService service, DNSSDFlags flags, uint ifIndex, string hostname, DNSSDAddressFamily addressFamily, string address, uint ttl) {
Console.WriteLine("----------------------------------------");
Console.WriteLine(hostname);
Console.WriteLine(address);
Console.WriteLine("----------------------------------------");
}
我得到的输出是:
----------------------------------------
axis-00408cbeeae5.local.
192.168.0.2
----------------------------------------
----------------------------------------
axis-00408cbeeae5.local.
169.254.44.36
----------------------------------------
当我想连接到设备时,我使用第一个地址。 第二个地址是什么? 此外,当我运行 ipconfig 时,我看到了我的机器的两个不同的IP地址。所以我看到类比,但我不明白。
答案 0 :(得分:1)
第二个地址看起来像是用于自动配置的地址。一旦配置了适配器,它就会消失。我不知道它为什么会持续存在,但后来我不知道IP摄像机。
如果第一个地址有效,那就继续使用它。基本上,使用第一个有效的地址。