我们在一个房间安装了Win CE IPv6 / IPv4设备并连接到网络。每隔一段时间,一个人就会带上一台笔记本电脑,将其插入网络并运行诊断程序 该程序应该能够以某种方式自动查找或发现所有这些设备。问题是诊断程序不知道设备IP。
我一直在研究IPv6链接本地发现,但我不太清楚如何测试它。
在我们的本地局域网中,如果我ping另一台计算机的已知IPv6地址,它会ping,但如果我这样做 ping -6 fe80 :: 1我得到“目标主机无法访问”并且为 ping -6 FF02 :: 1我收到“请求超时”
所以我不确定如何在Windows上测试链接本地发现。
那怎么办呢?
答案 0 :(得分:1)
如果设备支持zeroconf,那么您应该可以使用“net view”来获取本地服务器列表。然后,您可以使用Windows dns实现从主机名解析IP地址。如果您想从脚本执行所有这些操作,Ping.exe命令将是一个快捷方式,因为它将获取主机名并显示它正在ping的IP地址。
直接使用zeroconf协议可能有一种更优雅的方式,但上述情况也应该正常。
答案 1 :(得分:1)
尝试使用nmap扫描整个网络,并使用指定的IP地址获取当前连接的设备,免费获取操作系统和版本检测。
在这里你可以获得windows二进制文件:http://nmap.org/download.html
问候。
答案 2 :(得分:1)
对于非配置设备的IPv4使用广播169.254.254.255,或者您可以DHCP请求并广播到发现的子网,或者我确定某些应用程序只是广播到255.255.255.255。
IPv6在每个适配器的链路本地范围上使用多播,IPv6中没有广播,因此您无法使用ICMP ping。
这意味着对于与IP版本无关的应用程序,您需要实现应用程序层发现服务或使用ZeroConf等现有技术。
答案 3 :(得分:1)
LLDP在这种情况下可能很有用。
我认为Windows CE并不直接支持它,但也许您可以通过中间交换机获取所需的信息 - 假设您连接到与设备相同的交换机,或者您具有SNMP访问权限切换。