arping 是基于 arp 协议的诊断工具,用于检测 ip 冲突、获取 mac 地址,不依赖 icmp,需 root 权限且仅限局域网使用。

Arping 是一个基于 ARP 协议的网络诊断工具,常用于检测局域网中是否存在 IP 地址冲突,或快速获取目标 IP 对应的 MAC 地址。它不依赖 ICMP(不像 ping),而是直接发送和监听 ARP 请求/应答,因此在某些被禁 ping 的环境中依然有效。
检测 IP 是否已被占用(判断 IP 冲突)
当为新设备配置静态 IP 时,可先用 arping 确认该地址是否已在局域网中被其他设备使用:
- 运行 arping -c 3 192.168.1.100(-c 指定发送 3 次请求)
- 若收到应答(如 “Reply from 192.168.1.100 … [xx:xx:xx:xx:xx:xx]”),说明该 IP 已被使用,存在冲突风险
- 若显示 “Timeout” 或无输出,通常表示该 IP 当前空闲(注意:需确保目标设备在线且未屏蔽 ARP 应答)
获取某 IP 对应的 MAC 地址
相比查 arp 缓存表(arp -n),arping 可主动触发一次 ARP 查询并立即返回结果,更可靠:
- 执行 arping -c 1 192.168.1.50,成功时会显示源 MAC 地址(例如 “00:1a:2b:3c:4d:5e”)
- 若想只提取 MAC,可配合 grep 和 awk:
arping -c 1 192.168.1.50 | grep "reply" | awk '{print $5}' | tr -d '[]'
区分真实响应与误报
ARP 响应可能来自非预期设备(如网关、代理、启用了 ARP 代理的设备),需结合上下文判断:
- 对比多次 arping 结果:真实主机通常稳定响应;而某些中间设备可能间歇响应或延迟高
- 检查响应 MAC 是否符合预期厂商(可用 arp -a | grep 192.168.1.100 查看缓存中的历史记录)
- 在目标设备上执行 ip a 或 ifconfig,确认其实际配置的 IP 和 MAC 是否匹配
常见问题与注意事项
arping 需要 root 权限(因需构造原始数据包),普通用户运行会报错 “Operation not permitted”:
- 加 sudo 运行,如 sudo arping -c 2 192.168.1.1
- 部分系统默认未安装,Ubuntu/Debian 上用 sudo apt install iputils-arping,CentOS/RHEL 用 sudo yum install iputils(或 iputils-arping)
- arping 不跨子网工作,仅适用于同一广播域内的 IPv4 地址











