我正在开发用于检测网络实际状态的系统。其中一部分是获取所有 IP 及其各自的 MAC 地址。现在我正在使用 DAD(重复地址发现)模式下的 arping。我为我们使用的范围内的每个可能的 IP 发送 arping。如果主机处于启动状态,它会响应,然后我会获得其 MAC。如果主机处于关闭状态,arping 会超时。DAD 模式很棒,因为我不需要从我们使用的每个范围获取本地 IP 地址。另一方面,arping 只能处理一个目标,因此需要很长时间才能等待未使用的 IP 超时(在大多数范围内,大约有 90% 的地址未使用)。
我尝试了 nmap,它有很好的 arping 模式,可以在 2 秒内检查整个 /24 范围。不幸的是,我无法找到如何强制它使用 DAD 模式,并且它在本地机器没有 IP 的范围内失败。
所以我的问题是:是否可以将 nmap 切换到 DAD 模式,或者是否有其他可以并行发送(和接收)DAD ARP ping 的工具?其他选项包括尝试破解 nmap 以使用 DAD 或编写自己的工具(可能基于 arping 的代码)。或者我可以并行运行 arping,但我有点害怕产生 1000 个进程。
答案1
看来 arp-scan(即http://www.nta-monitor.com/wiki/index.php/Arp-scan_User_Guide) 正是我想要的工具。我需要更深入地研究它,但乍一看,它似乎正是我想要的……