4

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

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

在我们的本地 LAN 中,如果我 ping 另一台计算机的已知 IPv6 地址,它 ping 正常,但如果我 ping -6 fe80::1 我得到“目标主机无法访问”,对于 ping -6 FF02::1,我得到“请求定时出去”

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

那么如何做到这一点呢?

4

4 回答 4

1

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

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

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

于 2010-07-31T04:27:49.987 回答
1

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

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

于 2010-02-18T15:40:48.133 回答
1

尝试使用nmap扫描整个网络并获取当前连接的设备并分配IP地址,您可以免费获得操作系统和版本检测。

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

问候。

于 2010-02-18T15:51:18.287 回答
1

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

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

于 2015-10-22T13:03:16.870 回答