【问题标题】:Two IP addresses of one device in local network. How to interpret them?本地网络中一台设备的两个 IP 地址。如何解释它们?
【发布时间】:2014-02-01 09:10:58
【问题描述】:

我在 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 地址。所以我看到了类比,但我不明白。

【问题讨论】:

  • 您的 IP 配置中有一些非常时髦的东西。我建议您检查该无线适配器的高级配置设置,并确保您没有定义多个 IP 地址。至少我会尝试重新启动,看看是否有帮助。

标签: c# networking ip-address local-network


【解决方案1】:

第二个地址看起来像是用于自动配置的地址。一旦配置了适配器,它就会消失。我不知道为什么它会持续存在,但是,我不知道 IP 摄像机。

如果第一个地址有效,则继续使用它。基本上,使用第一个有效的地址。

【讨论】:

  • 有什么明智的方法来决定哪个是有效的 -> 我的意思是创建自动机制来决定。当然我可以检查ip.substring(0,3).equals("192"),但也许有更好的。
  • 它们同样有效。这实际上是一个使用你喜欢的第一个的问题。可能是第一个有效的。
  • 是的,第一个有效,第二个无效。但我想做一个检查它的机制。也许ping ip?
  • 是的,只有第一个是“pingable”:P,第二个:请求超时。
  • 你能看看这些东西吗?您似乎对 C# 很熟悉。谢谢!!! stackoverflow.com/questions/21095608/…
猜你喜欢
  • 1970-01-01
  • 2011-09-06
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多