利用ARP协议根据IP地址获取MAC地址

ARP协议

ARP 是”Address Resolution Protocol”的缩写,译为“地址解析协议”。它是根据 IP 地址获取物理地址的一个 TCP/IP 协议。借鉴:ARP协议的工作机制详解

常用命令:

arp -a:可以查看缓存的arp信息。Linux可以arp -n也可直观查看。

windows的效果如下:

MacOS/Linux查看效果如下:

脚本工具: 获取指定IP的MAC地址

指定文件的IP的文本如下:

192.168.20.1192.168.20.100192.168.20.101192.168.20.102192.168.20.103192.168.20.105复制代码

bash脚本如下:

#/bin/bash# 脚本说明:根据IP地址获取mac地址# windows请在gitbash终端执行可用。FILE_NAME=”$0″TXT_FILE_NAME=”${FILE_NAME%.sh}.txt”TEMP_FILE_NAME=”${FILE_NAME%.sh}.out.temp”OUT_FILE_NAME=”${FILE_NAME%.sh}.out”# 读取指定IP地址for line in `cat $TXT_FILE_NAME`do { echo “即将ping: $line” if [ ${#line} -ne 0 ] then ping -c 1 $line > /dev/null 2>&1 fi; }&done# 自定义处理ip 和mac地址 的关系function handle_ip_mac(){ ip=$1; mac=$2; if [ ${#mac} -eq 17 ] || [ ${#mac} != ‘FF-FF-FF-FF-FF-FF-FF’ ] then echo “自定义处理函数: $ip 对应地址是 $mac”; else echo “自定义处理函数: $ip 获取mac地址失败! $mac” fi; }# 输出mac地址SYS_NAME=`uname`echo “当前系统名uname:$SYS_NAME”if [[ $SYS_NAME =~ ‘MINGW’ ]]then echo ‘当前系统判定为WINDOWS!’ arp -a > $OUT_FILE_NAME echo “IP-MAC匹配关系结果已经保存到:$OUT_FILE_NAME” while read -r line do array=($line); ip=${array[0]}; mac=${array[1]}; handle_ip_mac $ip $mac; done < $OUT_FILE_NAME;else # mac 版本的下的 Darwin echo '当前系统判定为*inux!' arp -a > $TEMP_FILE_NAME cat $TEMP_FILE_NAME | awk ‘{split($0,ip,”[()]”);printf ip[2] ” “;a=index($0,” at “);b=index($0,” on “);print substr($0,a+4,b-a-4)}’ > “$OUT_FILE_NAME” echo “IP-MAC匹配关系结果已经保存到:$OUT_FILE_NAME” while read -r line do array=($line) ip=${array[0]} mac=${array[1]} handle_ip_mac $ip $mac; done < $OUT_FILE_NAME;fi;echo "Done!!! 脚本执行完成,详细结果可以查看 $OUT_FILE_NAME";复制代码

执行结果如下:

192.168.20.1 8c:f2:28:11:76:56192.168.20.100 f8:62:14:46:e6:5f192.168.20.101 3c:22:fb:47:a5:ed192.168.20.102 94:65:2d:20:d7:e6192.168.20.103 54:9f:13:c5:82:1c192.168.20.105 (incomplete)192.168.20.255 ff:ff:ff:ff:ff:ff224.0.0.251 1:0:5e:0:0:fb224.0.0.252 1:0:5e:0:0:fc239.255.255.250 1:0:5e:7f:ff:fa复制代码小结

返回的结果是(incomplete)查看ARP表项时,如果MAC ADDRESS字段显示为“Incomplete”,表示当前表项为临时ARP表项,临时ARP表项无法指导报文转发。

返回的结果是ff:ff:ff:ff:ff:ffarp欺骗,具体还不明白!


比丘资源网 » 利用ARP协议根据IP地址获取MAC地址

发表回复

提供最优质的资源集合

立即查看 了解详情