1. 项目介绍
arping 是一个用于在局域网(LAN)中查找特定 IP 地址是否被占用的实用工具。与传统的 ping 命令不同,arping 使用 ARP 协议来发送和接收数据包,从而能够检测到那些阻止 ICMP 请求的主机。arping 可以帮助网络管理员在调试网络时,快速确定哪些 IP 地址已经被占用,哪些是可用的。
- 探测局域网中某个IP是否已被使用;
- 探测目标 MAC 地址(注意测试本网段其他地址,测试本机地址没用);
- arping实用程序将 ARP和/或ICMP请求发送到指定的主机并显示回复。主机可以由其主机名、IP地址或MAC 地址指定
2 常用选项:
使用 arping -help 命令显示扩展帮助
-0 使用此选项可以 ping 源 IP 地址 0.0.0.0。当您尚未配置界面时使用它。请注意,这可能会导致 MAC-ping 未得到答复。这是 -S 0.0.0.0 的别名。
-a 听得见的 ping。
-A 只计算与请求地址匹配的地址(这会破坏您所做的大多数事情。仅当您同时 arping 多个主机时才有用。请参阅 arping-scan-net.sh 示例)。
-b 与 -0 类似,但源广播源地址 (255.255.255.255)。请注意,这可能会导致 arping 未得到答复,因为这不是主机的正常行为。
-B 如果要寻址 255.255.255.255,请使用代替主机。
-c count 仅发送计数请求。
-C count 只等待计数回复,不管 -c 和 -w。
-d 查找重复的回复。如果有来自两个不同 MAC 地址的答案,则以 1 退出。
-D 将答案显示为感叹号,将丢失的数据包显示为点。就像 Cisco 上的洪水 ping。
-e 像 -a 但在没有回复时发出哔哔声。
-F 不要试图对接口名称保持聪明。即使未给出此开关, -i 也会禁用此智能。
-H 显示帮助消息并退出。
-i interface 不要猜,使用指定的接口。
-p 在接口上打开混杂模式 ,如果您不“拥有”正在使用的 MAC 地址,请使用此模式。
-P 发送 ARP 回复而不是请求。与 -U 一起使用。
-q 不显示消息,错误消息除外。
-r 原始输出:每个回复只显示 MAC/IP 地址。
-R 原始输出:与 -r 类似,但显示“另一个”,可以与 -r 结合使用。
-s MAC 设置源 MAC 地址。您可能需要使用 -p 。
-S IP 与 -b 和 -0 类似,但设置了源地址 。请注意,如果目标没有到 IP 的路由,这可能会导致 arping 未得到答复。如果您不拥有正在使用的 IP,则可能需要在接口上打开混杂模式(使用 -p)。使用此开关,您无需自己获取 IP 地址即可找出主机的 IP 地址。
-t MAC 设置 ping IP 地址时使用的目标 MAC 地址。
-T IP 当 ping 不响应广播 ping 但可能响应定向广播 的 MAC 时,使用 -T 作为目标地址。 示例: 要检查 MAC-A 的地址,请使用 MAC-B 和 IP-B 的知识。 $ arping -S -s -p
-u ping MAC时显示 index=received/sent 而不是 index=received 。
-U 发送未经请求的 ARP。这会将ARP 帧中的目标 MAC 地址设置为广播地址 。主动提供的 ARP 用于更新邻居的 ARP 缓存。 示例: $ arping -i <接口> -U <接口 IP>
-v 详细输出。使用两次以获得更多消息。
-w usec ping 之间的等待时间,以微秒为单位。
-W sec 与 -w 相同,但以浮点秒为单位。
下面如何判断多个网关例子:
模拟前一个网关:
模拟多个网关ifcofnig etho 192.168.23.1:
模拟多个网关后:右下角arping ping出多个地址出来。
3. 应用案例和最佳实践
3.1 网络调试
在网络调试过程中,arping 可以帮助管理员快速确定哪些 IP 地址已经被占用。例如,在一个拥有多个 IP 地址的网络中,管理员可以使用 arping 来扫描整个 IP 范围,以确定哪些地址是可用的。
3.2 IP 地址冲突检测
当网络中出现 IP 地址冲突时,arping 可以用来检测冲突的 IP 地址。通过向特定 IP 地址发送 ARP 请求,如果收到多个响应,则表明该 IP 地址存在冲突。
3.3 设备发现
在某些情况下,网络管理员可能需要发现网络中的所有设备。arping 可以通过发送广播 ARP 请求来发现网络中的所有设备,并返回它们的 MAC 地址和 IP 地址。
4. 典型生态项目
4.1 tcpdump
tcpdump 是一个强大的网络抓包工具,可以与 arping 结合使用,以捕获和分析网络中的 ARP 数据包。通过 tcpdump,管理员可以更详细地了解网络中的 ARP 流量。
4.2 nmap
nmap 是一个网络扫描工具,可以用于发现网络中的主机和服务。虽然 nmap 主要使用 ICMP 和 TCP/UDP 扫描,但它也可以与 arping 结合使用,以提高网络发现的准确性。
4.3 libpcap
libpcap 是一个用于网络数据包捕获的库,arping 依赖于 libpcap 来捕获和发送 ARP 数据包。libpcap 提供了底层的数据包捕获功能,使得 arping 能够高效地工作。
通过这些工具的结合使用,网络管理员可以更全面地管理和监控网络,确保网络的稳定性和安全性。