【问题标题】:Device auto discovery in IPv6/IPv4 networkIPv6/IPv4 网络中的设备自动发现
【发布时间】:2010-02-18 15:21:32
【问题描述】:

我们在房间中安装了 Win CE IPv6/IPv4 设备并连接到网络。不时有人会带着笔记本电脑,将其插入网络并运行诊断程序。
该程序应该能够以某种方式自动查找或发现所有这些设备。问题是诊断程序不知道设备 IP。

我一直在研究 IPv6 链路本地发现,但我不太确定如何测试它。

在我们的本地 LAN 中,如果我 ping 另一台计算机的已知 IPv6 地址,它可以 ping,但如果我这样做 ping -6 fe80::1 我得到“目标主机无法访问”和 ping -6 FF02::1 我得到“请求超时”

所以我什至不确定如何在 Windows 上测试链接本地发现。

那么如何做到这一点呢?

【问题讨论】:

  • 我不太明白这与编程有什么关系?你在使用 DLNA / UPnP 吗?
  • 好吧,我必须在 C# 的诊断程序中以某种方式执行此操作,所以我猜它与编程相关。如果需要,我很乐意将其移至其他地方。
  • 我目前没有使用任何东西。我在问怎么做才能开始使用一些东西:)

标签: .net ipv6 ipv4


【解决方案1】:

如果设备支持zeroconf,那么您应该可以使用“net view”来获取本地服务器列表。然后,您可以使用 Windows dns 实现从主机名解析 IP 地址。如果您想通过脚本执行所有这些操作,Ping.exe 命令将是一个快捷方式,因为它会采用主机名并显示它正在 ping 的 IP 地址。

可能有一种更优雅的方式直接使用 zeroconf 协议,但上述方式也应该可以正常工作。

【讨论】:

  • 设备不保证有名称。这会带来问题吗?
  • 所以我想这是不可能的,那么......真可惜。
【解决方案2】:

尝试使用nmap扫描全网,获取当前连接设备的IP地址,免费获取操作系统和版本检测。

您可以在此处获取 Windows 二进制文件:http://nmap.org/download.html

问候。

【讨论】:

  • 即使设备的 IP 范围与笔记本电脑所插入的网络不同,这也能正常工作吗?例如 LAN 是 172.16.x.x 但设备 IP 是 192.4.x.x?
  • 是的,那个也困扰着我 :) 你有更好的 JB 主意吗?
  • 回答问题“不同的局域网”..如果网络路由正确,它可以工作。
【解决方案3】:

对于 IPv4,对未配置的设备使用 169.254.254.255 上的广播,或者您可以 DHCP 请求并广播到发现的子网,或者我确定某些应用程序只是广播到 255.255.255.255。

IPv6 在链路本地范围内使用多播对于每个适配器,IPv6 中没有广播,因此您无法使用 ICMP ping。

这意味着对于 IP 版本无关的应用程序,您需要实施应用程序层发现服务或使用现有技术,例如 ZeroConf。

【讨论】:

    【解决方案4】:

    LLDP 在这种情况下可能很有用。

    我认为 Windows CE 不直接支持它,但也许您可以通过中间交换机获得所需的信息 - 假设您连接到与设备相同的交换机,或者您具有对该交换机的 SNMP 访问权限.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多