arping详解

最近检测内网机器的ip占用问题,用到了arping,总结一下。

版本

arping主要干的活就是查看ip的MAC地址及IP占用的问题。

arping有两个版本,一个版本是Thomas Habets这个人写的,这个版本有个好处是可以arping <MAC地址>,也就是说我们可以通过MAC地址得到IP。还有一个版本是Linux iputils suite的,这个版本就不能通过MAC地址,解析出IP地址了。

可以使用arping -V来查看自己系统的arping的版本

楼主观察了CentOS使用的是Linux iputils suite版本的,debian使用的是Thomas Habets。

注意两个版本的的arping使用的参数有很大的区别,所以要根据自己的arping版本去使用相应的参数。别到网上抄了个,结果在自己的系统上不能执行。

楼主使用的系统debian是Thomas Habets版本的,所以下面的很多参数只适合debian操作系统。

TH版简介

过程:给一个主机,发送arp或者ICMP包,并打印回复的消息。主机可以以hostname,ip地址,mac地址等形式出现。一个请求包,每隔一秒发送一次。为什么说发送的包有arp和icmp呢,因为,当主机为ip或hostname的时候,发送的是arp请求包。当主机是mac地址的时候,发送的则是icmp的echo广播包

参数

-0:指定源地址为0.0.0.0,这个一般是在我们刚刚安装好系统,电脑还没配置好IP的时候

-a:Audible ping.这个当有reply回来的时候,你的电脑有喇叭的话,就会滴滴的叫

-A:Only count addresses matching requested address

-b:类似-0,指定源broadcast为255.255.255.255

-B:指定这个就相当于 arping 255.255.255.255

-c count:发送指定数量的arp包后,即停止退出

-d:这个比较重要,当局域网有IP占用的时候,可以指定这个参数,当有相同的IP的不同MAC地址reply的时候,arping会退出,退出码为1
-D:这个检测是否丢包的,当丢包的时候打印感叹号,正常的时候打印逗号

-e:和-a相反,当没有reply的时候,会滴滴滴

-p:打开混杂模式,当前用户对mac无权限时,可以加上这个选

-r:输出的时候只打印MAC,写脚本的时候用得到,不用自己对结果awk了

-R:输出的时候只打印IP,和上面一样

-s MAC:指定源MAC地址

-S IP:指定源IP,设置了源IP,如果目标主机没有到源IP的route,则有可能收不到answer

-t MAC:指定目的MAC

-T IP:指定目的IP,

-i interface:指定发送arp包的设备。不指定的话,默认为系统的第一块网卡

-q:表示不打印输出,写脚本不想打印输出的时候,应该用的到

-u:没啥大用,结果显示的时候,加这个参数和不加,index的显示形式不同

-v:打印详细的输出,默认打印的好像就是verbose

-w deadline:指定两个ping直接的时间间隔,单位为毫秒,默认为1秒

用法

讲了这么多,感觉大多数的参数都用不到吧。记住常见用法就OK了

用法1:查看某个IP的MAC地址

arping 192.168.131.155

用法2:查看某个IP的MAC地址,并指定count数量

arping -c 1 192.168.131.155

用法3:当有多块网卡的时候,指定特定的设备来发送请求包

arping -i eth1 -c 1 192.168.131.155

用法4:查看某个IP是否被不同的MAC占用

arping -d 192.168.131.155

用法5:查看某个MAC地址的IP,要在同一子网才查得到

arping -c 1 52:54:00:a1:31:89

用法6:确定MAC和IP的对应,确定指定的网卡绑定了指定的IP

arping -c 1  -T 192.168.131.156  00:13:72:f9:ca:60

用法7:确定IP和MAC对应,确定指定IP绑在了指定的网卡上

arping -c 1  -t  00:13:72:f9:ca:60 192.168.131.156

用法8:有时候,本地查不到某主机,可以通过让网关或别的机器去查。以下几种形式测了下都可以

 arping   -c 1  -S 10.240.160.1 -s 88:5a:92:12:c1:c1  10.240.162.115
 arping   -c 1  -S 10.240.160.1   10.240.162.115
 arping   -c 1  -s 88:5a:92:12:c1:c1  10.240.162.115

OK,差不多这些了!

时间: 2024-12-16 13:34:32

arping详解的相关文章

有了Openvswitch和Docker,终于可以做《TCP/IP详解》的实验了!

所有做过网络编程的程序员,想必都会看<TCP/IP详解>卷一:协议 后来出了第二版,但是由于第一版才是Rechard Stevens的原版,本人还是多次看了第一版. 对这一版印象最深的就是下面这个拓扑图 书上的很多实验,都是基于这个图做的,看了实验结果,很多理论才有真实的感觉. 看这本书的时候,不尽感慨Rechard Stevens的天赋英才,他能够利用工作中当时少于的实验环境,做了大量的实验,写出了普惠程序员的这本书. 可是除了看书中的实验结果,如何能够模拟这么一个环境,也动手测试一下呢?

Spring事务管理(详解+实例)

写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都

转载:DenseNet算法详解

原文连接:http://blog.csdn.net/u014380165/article/details/75142664 参考连接:http://blog.csdn.net/u012938704/article/details/53468483 本文这里仅当学习笔记使用,具体细节建议前往原文细度. 论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github链接:h

MariaDB(MySQL)创建、删除、选择及数据类型使用详解

一.MariaDB简介(MySQL简介略过) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB. MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL A

HttpServletResponse和HttpServletRequest详解

HttpServletResponse,HttpServletRequest详解 1.相关的接口 HttpServletRequest HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据.同时,HttpServletRequest接口可以获取由客户端传送的名称,也可以获取产生请求并且接收请求的服务器端主机名及IP地址,还可以获取客户端正在使用的通信协议等信息.下表是接口HttpServletRequest的常用方法. 说明:HttpServ

POSIX 线程详解(经典必看)

总共三部分: 第一部分:POSIX 线程详解                                   Daniel Robbins ([email protected]), 总裁/CEO, Gentoo Technologies, Inc.  2000 年 7 月 01 日 第二部分:通用线程:POSIX 线程详解,第 2部分       Daniel Robbins ([email protected]), 总裁/CEO, Gentoo Technologies, Inc.  20

.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)

阅读目录: 1.环路执行对象模型.碎片化执行模型(假递归式调用) 2.N层对象执行模型(纵横向对比链式扩展方法) 3.LINQ查询表达式和链式查询方法其实都是空壳子 4.详细的对象结构图(对象的执行原理) 5.IQueryable<T>与IQueryProvider一对一的关系能否改成一对多的关系 6.完整的自定义查询 1]. 环路执行对象模型.碎片化执行模型(假递归式调用) 这个主题扯的可能有点远,但是它关系着整个LINQ框架的设计结构,至少在我还没有搞懂LINQ的本意之前,在我脑海里一直频

netstat状态详解

一.生产服务器netstat tcp连接状态................................................................................ 2 1.1生产服务器某个业务LVS负载均衡上连接状态数量............................................... 2 1.2生产服务器某个业务web上连接状态数量...............................................

详解go语言的array和slice 【二】

上一篇  详解go语言的array和slice [一]已经讲解过,array和slice的一些基本用法,使用array和slice时需要注意的地方,特别是slice需要注意的地方比较多.上一篇的最后讲解到创建新的slice时使用第三个索引来限制slice的容量,在操作新slice时,如果新slice的容量大于长度时,添加新元素依然后使源的相应元素改变.这一篇里我会讲解到如何避免这些问题,以及迭代.和做为方法参数方面的知识点. slice的长度和容量设置为同一个值 如果在创建新的slice时我们把