ARP级ping命令:arping
一.工作原理
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议,是网络链路层的协议,在局域网中使用。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
ARP的工作过程:
主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查


二.命令格式
arping [-AbDfhqUV] [-c count] [-w deadline] [-s source] [-I interface] destination
三.常用参数
-A #和U参数作用相同,不过发送的是ARP应答包
-b #保持广播状态(收到arp应答之后会切换成单一传播模式)
-c count #发送指定数量的ARP请求包
-D #冲突检测模式,如果返回为空,则代表该ip没有被占用
-f #当收到确认主机存活的第一个数据包时,停止发送
-I interface #指定发送ARP数据包使用的网卡设备
-h #打印帮助并退出
-q #不显示警告信息
-s source #设置源ip地址,DAD模式下为0.0.0.0,主动模式下为自己设定的ip地址,不设置则为本机实际ip地址
-U #主动发送ARP请求来更新其他主机的ARP缓存
-V #打印版本信息并退出
-w deadline #设置超时时间,
四.实践
打开虚拟机,设置仅主机模式,将虚拟机和本机设置在同一网段,本实验中物理机ip为192.168.56.1,MAC为0a:00:27:00:00:00;虚拟机ip为192.168.56.101,MAC为08:00:27:ed:95:88
1.先用虚拟机广播发送发送arp请求包

可以看到虚拟机收到了物理机arp应答包,且物理
同时查看物理机的ARP缓存
# arp -i vboxnet0 -a
? (192.168.56.101) at :::ed:: [ether] on vboxnet0
与实际相符
2.冲突检测模式
使用物理机进行冲突检测,冲突检测目的ip为虚拟机ip
# arping -D -I vboxnet0 192.168.56.101
ARPING 192.168.56.101 from 0.0.0.0 vboxnet0
Unicast reply from 192.168.56.101 [:::ED::] .890ms
Sent probes ( broadcast(s))
Received response(s)
# arping -D -I vboxnet0 -w 3 192.168.56.10
ARPING 192.168.56.10 from 0.0.0.0 vboxnet0
Sent 4 probes (4 broadcast(s))
Received 0 response(s)
可以看到第一个arping有返回值,说明192.168.56.101已经被占用了;而第二个arping没有返回,说明该ip可用
ARP级ping命令:arping的更多相关文章
- linux常用网络命令ping和arping
linux常用网络命令ping和arping ping 向目标主机发送icmp请求包 常用来测试当前主机与目标主机网络连接状况 常见选项 -c 设置发包的个数 -s ...
- ICMP、ARP协议介绍和ping命令
交换机工作原理和常用的简单命令 一.ICMP协议 1)ICMP协议的封装 二.ARP协议 1)什么是ARP协议 2)ARP相关命令 三.Ping命令的使 ...
- ping命令执行过程详解
[TOC] ping命令执行过程详解 机器A ping 机器B 同一网段 ping通知系统建立一个固定格式的ICMP请求数据包 ICMP协议打包这个数据包和机器B的IP地址转交给IP协议层(一组后台运 ...
- ICMP协议Ping命令的应用
ICMP的全称是 Internet Control Message Protocol ,它是TCP/IP协议族的一个子协议,属于网络层协议,用于在IP主机.路由器之间传递控制消息.从技术角度来讲,就是 ...
- TCP/IP协议学习之实例ping命令学习笔记
TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...
- Ping 命令实战小结--TCP/IP协议学习
2011-12-22 22:38:49 图1 图2 一,环境说明 硬件连线.PC与2440开发板直接用网线连接. PC的ip地址:192.168.0.107.2440开发板的ip地址:192.168. ...
- 脑残式网络编程入门(五):每天都在用的Ping命令,它到底是什么?
本文引用了公众号纯洁的微笑作者奎哥的技术文章,感谢原作者的分享. 1.前言 老于网络编程熟手来说,在测试和部署网络通信应用(比如IM聊天.实时音视频等)时,如果发现网络连接超时,第一时间想到的就是 ...
- Ping 命令的执行过程和应用协议
1. ICMP是“Internet Control Message Ptotocol”的缩写.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息. 控制消息是指网络通不通.主机 ...
- ICMP协议和ping命令
当网络不通的情况下,通常会想到ping命令,ping一下,但是ping命令内部如何执行的,可能并不清楚,其实ping是基于ICMP协议进行工作的. 一.ICMP协议的格式 ICMP是在RFC 792 ...
随机推荐
- Go语言(二) 继承和重载
继承 package main import "fmt" type Skills []string type person struct { name string age int ...
- ZT 怎么样才算熟悉设计模式? [问题点数:40分,结帖人jiaoyun007]
http://bbs.csdn.net/topics/390448668?page=1#post-394406161 近日面试,因为个人简历里有“熟悉设计模式”这句话,面试官边侃侃发问了:什么是装饰模 ...
- 如果把PNG、JPG、BMP和GIF文件批量转换为ICO文件?
有时候需要将大量的图片文件(比如PNG.JPG.BMP和GIF文件)批量转换为ICO图标文件,如果一个一个操作,非常费时间.本文将介绍如何用Dr. Folder软件快速批量转换图片文件为ICO图标文件 ...
- 利用kali嗅探周围发送的短信
设备清单: 摩托罗拉 C118 (25块) FT232RL USB TO TTL (30元) 摩托罗拉 Motorola C118专用数据连接线 (10块) MiniUSB 链接线(10元,这个大家手 ...
- python UI自动化实战记录三:pageobject-基类
脚本思路: 使用pageobject模式,写一个basepage基类,所有页面的通用方法封装到基类中.比如打开页面,关闭页面,等待时间,鼠标移到元素上,获取单个元素,获取一组元素,获取元素的子元素,截 ...
- std::vector的内存释放
先上一段代码 using namespace std; class A{ public: ~A(){ cout << "deconstruct"; }; }; #inc ...
- 阅读Configuration源码
一.阅读类注释 ①.Configuration的实例允许应用程序使用指定的属性映射文件来创建一个SessionFactory. ②.通常在一个应用程序中创建一个单一的Configuration对象,· ...
- 【转】九步学习python装饰器
本篇日志来自:http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html 纯转,只字未改.只是为了学习一下装饰器.其实现在也是没有太看明白 ...
- non-fragile:oc2.0特性
Runtime Versions and Platforms There are different versions of the Objective-C runtime on different ...
- Sublime Text 3中关闭记住上次打开的文件
使用UltraEdit的时候,每次安装后就得修改一堆配置,其中一项便是关闭“打开上一次未关闭的文件”,Sublime Text 2也有这么一个默认的功能,在实际使用中,这种方式确实可以较快速的访问文件 ...