arping 工具使用
1. 项目介绍
arping 是一个用于在局域网(LAN)中查找特定 IP 地址是否被占用的实用工具。与传统的 ping 命令不同,arping 使用 ARP 协议来发送和接收数据包,从而能够检测到那些阻止 ICMP 请求的主机。arping 可以帮助网络管理员在调试网络时,快速确定哪些 IP 地址已经被占用,哪些是可用的。
探测目标 MAC 地址(注意测试本网段其他地址,测试本机地址没用);
arping实用程序将 ARP和/或ICMP请求发送到指定的主机并显示回复。主机可以由其主机名、IP地址或MAC 地址指定
arping,用来向局域网内的其它主机发送ARP请求的指令,它可以用来测试局域网内的某个IP是否已被使用。
arping命令无法一次性实现多个ip的扫描,但是可以配合shell脚本实现整个局域网的扫描。
arping主要干的活就是查看ip的MAC地址及IP占用的问题。
2 常用选项:
使用 arping -help 命令显示扩展帮助
- arping -c 1 -a 192.168.43.2 -----相当于ping命令
- arping -c 3 192.168.43.150 ------只返回三条结果
- arping -C 2 -c 10 -r 192.168.43.150 -----返回目标机的MAC地址
- arping -i eth1 192.168.43.150 ----指定网卡来发送请求包
- arping -d 192.168.43.150 ----若返回多个MAC地址,则说明存在arp欺骗
- arping -c 1 -S 网关 目标主机IP ----通过网关来来探测某主机
- arping -c 1 -T IP MAC ----确定MAC与IP的对应
- arping -c 1 -t MAC IP ----确定IP与MAC的对应
-
- -c count:发送指定数量的arp包后,即停止退出
- -d:这个比较重要,当局域网有IP占用的时候,可以指定这个参数,当有相同的IP的不同MAC地址reply的时候,arping会退出,退出码为1
- -r:输出的时候只打印MAC,写脚本的时候用得到,不用自己对结果awk了
- -R:输出的时候只打印IP,和上面一样
- -q:表示不打印输出,写脚本不想打印输出的时候,应该用的到
- -w deadline:指定两个ping直接的时间间隔,单位为毫秒,默认为1秒
-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 相同,但以浮点秒为单位。
1)下面如何判断多个网关例子:
模拟前一个网关:
模拟多个网关ifcofnig etho 192.168.23.1:
模拟多个网关后:右下角arping ping出多个地址出来。
2)判断目标ip是否存在
3)查看某个IP的MAC地址,并指定发送包的数量:
arping X.X.X.X -c 1
root@kali:~# arping -c 1 192.168.50.1 ARPING 192.168.50.1 60 bytes from 00:50:56:c0:00:08 (192.168.50.1): index=0 time=393.107 usec --- 192.168.50.1 statistics --- 1 packets transmitted, 1 packets received, 0% unanswered (0 extra) rtt min/avg/max/std-dev = 0.393/0.393/0.393/0.000 ms root@kali:~# arping -c 1 192.168.50.1 ARPING 192.168.50.1 60 bytes from 00:50:56:c0:00:08 (192.168.50.1): index=0 time=393.107 usec --- 192.168.50.1 statistics --- 1 packets transmitted, 1 packets received, 0% unanswered (0 extra) rtt min/avg/max/std-dev = 0.393/0.393/0.393/0.000 ms
4)查看某个IP是否被不同的MAC占用,嗅探arp欺骗
arping X.X.X.X -d
5)查看某个MAC地址的IP
arping X:X:X:X:X:X -c 1
6)当有多块网卡的时候,指定特定的设备来发送请求包
arping -i eth0 192.168.220.130
7)确定MAC和IP的对应,确定指定的网卡绑定了指定的IP
arping -t 00:0c:29:0a:80:4e 192.168.220.130
arping和ping的区别
ping命令在windows和linux中都能使用;arping只能在linux中使用,windows中不能使用。
主要介绍如下:
1.ping发送ICMP请求包,用来测试主机与目标主机之间的连通性。如果未连通:有可能是物理上的问题,有可能是软件上的(防火墙开启等)问题。
2.arping发送ARP请求包,用来测试某个IP是否被主机使用,以及使用主机的物理地址
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 能够高效地工作。
通过这些工具的结合使用,网络管理员可以更全面地管理和监控网络,确保网络的稳定性和安全性。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器