在小型网络中,比如 20 个或更少的节点,我的程序在测试仪器上需要知道“谁在那里?”通过 MAC 而不是通过 IP。我将插入随机网络,并且需要能够执行此操作,而无需知道网络中的任何地址、MAC 或其他内容,并且知道我不能依赖 DHCP。 DHCP 服务器可能关闭并且节点没有 IP 地址和/或我无法获取 IP 地址,这是完全合理的。说实话,我不需要IP,我们的测试协议是MAC层,而不是IP。
那么,如何确定仪器邻居的 MAC 地址呢?这听起来很像 LLDP,但倒退了,即“谁在那里”,而不是“我在这里,我可以做到这一点......”。我必须假设没有 IP 分配给端点,因此没有 ARPing、没有 NMAP 等。
Note我应该补充一点,这是有线网络。
在一般情况下,没有可以发送并保证网络上每台计算机都能做出响应的 MAC 级协议(我假设您在这里使用以太网,因为我相信 WLAN 上的情况有所不同)。即,在 MAC 层不存在保证主机响应的广播(甚至 IIRC 单播)。有了IP在上面,你就可以进行IP广播并检查ARP缓存。
做到这一点的最好方法(在我看来)是使用交换机/学习桥在以太网上工作的方式,即以混杂模式被动监听数据包并记下它们的 MAC 地址。您不会发现完全安静的主机,但在交换机发送数据包之前也不会发现。根据定义,无论如何都无法发现完全沉默的主机。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)