arp协议以及脚本编写

前言:

若两个计算机都在同一个局网内,发送方还需要知道接收方的MAC地址(硬件地址)。如果发送方不知道接收方的MAC地址, 就无法发送信息,得问ARP 。ARP会在局网里向所有的计算机广播:你的地址是这个接收方的地址吗?如果是,请告诉我你的MAC地址。但ARP只适用于局网,如果目的计算机位于另一个局网,两者得用路由器相连,而路由器的一个重要作用是把洪泛局限在一个局网之内,防止洪泛蔓延到其他局网。所以ARP不能跨过路由器查询。这个矛盾可用ARP代理解决。

ARP代理原理:如果ARP查询的对象位于不同的局域网,ARP的查询又不能跨过路由器在另一个局网传播,路由器就成为另一个局网的代表,回复ARPequest,就是ARP代理(Proxy ARP)

1. 理解arp协议

Address Resolution Protocol的缩写,地址解析协议,用于解析IP地址与MAC地址的一一映射。

2.工作过程

主机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请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

3.常见用法:

1.arp -a或arp –g
用于查看缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上用来显示ARP缓存中所有项目的选项,而Windows用的是arp
-a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。 arp -a Ip 如果有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。 arp -s Ip 物理地址 可以向ARP缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
2. arp -d Ip 使用该命令能够人工删除一个静态项目。

4..编写arp脚本抓取对应主机mac地址

#!/bin/bash
head='192.168.3'

i=1
count=0

while [ $i -le 254 ]
do
    if [ $count -gt 20 ];then
        count=0
        sleep 1
    fi
    ping -c1 "${head}"".$i"&
    let i++
    let count++
done


wait 
echo "#############################"
arp -a |grep -v 'incomplete'
echo "#############################"

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值