什么是ARP?
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
ARP脚本
我们先在linux环境下建立ARP脚本,如下:
这里的IP地址要与所连接的网络的IP地址一致。
#!/bin/bash
head='192.168.3'
i=1
while [ $i -le 254 ]
do
echo "${head}"".$i"
let i++
done //这个是建立254个ip地址
结果如下
但是以上的ip地址有的是合法的有的是不合法的,我们要将不合法的ip地址筛选出来。
#!/bin/bash
head='192.168.3'
i=1
while [ $i -le 254 ]
do
ping -cl "${head}"".$i" //ping一次
let i++
done
#!/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
//每个1秒生产20个后台作业
其中的incomplete为不合法的ip地址,所以我们要把不合法的ip地址筛选出去。
源代码如下:
#!/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' //-v操作将含incomplete的ip地址筛选出去
echo "##########################"