一、arp协议简介
使用arping前,我们先了解arp协议,arp(Address Resolution Protocol)地址解析协议,是通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议。ARP是一个重要的TCP/IP协议,并且用于确定对应IP地址的网卡物理地址。使用arp命令,我们能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。
arping命令作用是使用arp数据包,通过ping命令检查来测试网络。 arping命令能够测试一个ip地址是否是在网络上已经被使用,并能够获取更多设备信息,功能类似于ping。由于arping命令基于ARP广播机制,所以arping命令只能测试同一网段或子网的网络主机的连通性,ping命令则是基于ICMP协议,是可以路由的,所以使用ping命令可以测试任意网段的主机网络连通性。
二、arping命令
1. 语法
ARPing 2.21, by Thomas Habets <thomas@habets.se>
usage: arping [ -0aAbdDeFpPqrRuUv ] [ -w <sec> ] [ -W <sec> ] [ -S <host/ip> ]
[ -T <host/ip ] [ -s <MAC> ] [ -t <MAC> ] [ -c <count> ]
[ -C <count> ] [ -i <interface> ] [ -m <type> ] [ -g <group> ]
[ -V <vlan> ] [ -Q <priority> ] <host/ip/MAC | -B>
2. 参数详解
| 参数 | 解释 |
|---|---|
| -0 | 使用此选项可以 ping 源 IP 地址 0.0.0.0。请注意,当您尚未配置界面时,用这 可能会得到MAC-ping未应答。这是 -S 的别名0.0.0.0 |
| -a | Audiable ping |
| -A | 只计算与请求地址匹配的地址(这会破坏你所做的大多数事情。只有当你一次 arping 多台主机时才有用。例如,参见 arping-scan-net.sh) |
| -b | 发送以太网广播帧,arping在开始时使用广播地址,在收到回复后使用unicast单播地址。请注意,这可能会使 arping 没有得到答复,因为这不是主机的正常行为 |
| -B | 如果你想寻址255.255.255.255,就用它代替主机。 |
| -c | APR请求数据包个数,只发送指定个数的ARP请求。 |
| -C | APR回复数据包个数,只等这么多回复,不管 -c 和 -w。 |
| -d | 查找重复的回复。如果有来自两个不同 MAC 地址的答案,则以 1 退出。 |
| -D | 将答案显示为感叹号,将丢失的数据包显示为点。 |
| -e | 像 -a 但在没有回复时发出哔哔声。 |
| -F | 不要试图在接口名称上表现得很聪明。 (即使没有给出这个开关,-i也会覆盖聪明性) |
| -g | 组 setgid()到这个组而不是nobody组。 |
| -h | 显示帮助消息并退出。 |
| -i | 接口,使用指定的接口。 |
| -m | 类型,用于传入数据包的时间戳类型。 ping 时使用 -vv 列出可用的。 |
| -q | 不显示信息,除了错误信息。 |
| -Q | pri 802.1p 优先级设置。应与 802.1Q (-V) 一起使用。默认为 0。 |
| -r | 原始输出:每个回复只显示 MAC/IP 地址。 |
| -R | 原始输出:与 -r 类似,但显示“另一个”,可以与 -r 结合使用。 |
| -s Mac | 设置源 MAC 地址。您可能需要将 -p 与此一起使用。 |
| -S IP | 类似于 -b 和 -0,但设置了源地址。请注意,如果目标没有到 IP 的路由,这可能会导致 arping 无法响应。如果您不拥有正在使用的 IP,则可能需要在界面上打开混杂模式(使用 -p)。有了这个switch 你可以找出主机的 IP 地址,而无需自己获取 IP 地址。 |
| -t Mac | 设置源 MAC 地址。您可能需要将 -p 与此一起使用。 |
| -T IP | 当ping那些不响应广播但可能响应定向广播的MAC时,使用-T作为目标地址。但可能对定向广播有反应。例子:要检查MAC-A的地址,使用MAC-B和IP-B的知识.$ arping -S <IP-B> -s <MAC-B> -p <MAC-A> |
| -p | 打开接口上的混杂模式,如果你不 "拥有 "你正在使用的MAC地址,就使用这个。 |
| -P | 发送 ARP 回复而不是请求。与 -U 一起使用。 |
| -u | 在ping MACs时显示index=received/sent,而不是只显示index=received。 |
| -U | 发送未经请求的 ARP。 |
| -v | 详细输出。使用两次以获取更多消息。 |
| -V num | 要添加的 802.1Q 标记。默认为无 VLAN 标记。 |
| -w sec | 在ping退出前指定一个超时时间,无论发送或接收了多少个数据包。 |
| -W sec | ping之间的等待时间。 |
3. 实例
3.1 测试某个IP,如果IP在网路上已经被使用,可以获取到它的MAC地址
arping IP
3.2 指定网卡接口探测IP
首先看看自己的电脑的网卡信息,Linux使用ifconfig命令即可看到网卡信息,一般是eth0
arping -i 网卡接口 IP
3.3 指定发送的ARP请求包的个数探测IP
arping -c 个数 -i 网卡接口 IP
3.4 使用-D用!和.替代返回结果,探测到IP存活,返回!,不存活,返回.
arping -i 网卡接口 -c 个数 -D 存活的IP
!!! 0% packet loss (0 extra)
arping -i 网卡接口 -c 个数 -D 不存活的IP
... 0% packet loss (0 extra)
4.参考
arping命令详解:www.cnblogs.com/my-show-tim…
【arp】关于arp和arping命令的使用:www.jianshu.com/p/a51ba75cd…