用shell扫描局域网所有IP的MAC地址
发布时间:2020-12-15 07:13:21 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/bin/bash########################################################Ip=`ifconfig eth0|awk -F '[:B]' '/inet addr/{print $2}'`Mask=`ifconfig et
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #!/bin/bash ######################################################## Ip=`ifconfig eth0|awk -F '[:B]' '/inet addr/{print $2}'` Mask=`ifconfig eth0|awk -F'[:$]' '/inet addr/{print $4}'` for ((i=1;i< =4;i++));do Tmp=`echo $Ip|awk -F "." '{printf $'$i'}'` Ip_Bin+=`echo "obase=2;$Tmp"|bc|awk '{printf "%08dn",$0}'` Tmp1=`echo $Mask|awk -F "." '{printf $'$i'}'` Mask_Bin+=`echo "obase=2;$Tmp1"|bc|awk '{printf "%08dn",$0}'` done; Mask_Lng=`printf ${Mask_Bin%%0*}|wc -c` MyNet=${Ip_Bin:0:$Mask_Lng}$(printf "%0$((32-$Mask_Lng))d") MyBro=${Ip_Bin:0:$Mask_Lng}$(printf "%0$((32-$Mask_Lng))d"|tr 0 1) echo -e "n---------- "start at $(date +"%Y-%m-%d %H:%M:%S")"n">$HOME/ScanIpMac.lst for (( i=$((2#$MyNet+1)); i< $((2#$MyBro)); i++ )); do Tmp=$(echo "obase=2;$i"|bc) Ip=$(for i in {0..3};do test $i != 0 && printf '.'; printf $((2#${Tmp:$i*8:8}));done) ping -n -w 1 -c 1 $Ip > /dev/null 2>&1 if [ $? == 0 ];then Mac=`arp -n $Ip|grep $Ip|awk -F " " '{print $3}'` echo $Ip" "$Mac |tee -a $HOME/ScanIpMac.lst fi done; echo -e "n---------- "End at $(date +"%Y-%m-%d %H:%M:%S")>>$HOME/ScanIpMac.lst exit 0 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |