扫描MAC地址脚本--保存
生活随笔
收集整理的這篇文章主要介紹了
扫描MAC地址脚本--保存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
掃描MAC地址腳本
呵呵,腳本寫得不是很好,希望有高手幫我完善,比如使用了外部命令,或語法規范,或更妙的技巧,或更加靈活性……
#!/bin/bash #author: InBi #date: 2011-08-16 #website: http://www.itwhy.org/2011/08-20/939.html ######################################################## ScanIpMac(){Ip_Bin=$(ifconfig $1|sed -rn '/inet /{s/[^:]*:([^ ]*).*/obase=2;\1/;s/\./;/gp}'|bc|xargs printf "%08d")Mask_Bin=$(ifconfig $1|sed -rn '/inet /{s/.*Mask:([^ ]*).*/obase=2;\1/;s/\./;/gp}'|bc|xargs printf "%08d")#把IP和netmask每一段轉換成二進制,然后連接起來。Mask_Lng=`printf ${Mask_Bin%%0*}|wc -c`#計算出netmask為“1”的部份有多少位。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.lstfor (( i=$((2#$MyNet+1)); i< $((2#$MyBro)); i++ )); doTmp=$(echo "obase=2;$i"|bc)Ip=$(for i in {0..3};do test $i != 0 && printf '.'; printf $((2#${Tmp:$i*8:8}));done)#每一次循環數換成二進制,然后8位分一段換成十制制,再連接起來。arping -w 0.3 -c 1 $Ip > /dev/null 2>&1 &#發送 ARP 包,且不等待響應就進行下一次循環。done;sleep 5#等待 5 秒。arp -n -i $1 2>/dev/null|grep ':'|sort -n -u -t "." -k1,1 -k2,2 -k3,3 -k4,4|awk -F ' ' '{print $1"\t\t"$3}'|tee -a $HOME/ScanIpMac.lst#arp -n 輸出按 IP 排序后重定向到 ScanIpMac.lst 文件,并打印至標準輸出。echo -e "\n---------- "End at $(date +"%Y-%m-%d %H:%M:%S")" ------------">>$HOME/ScanIpMac.lstexit 0 } if test -n "$1" && test $1 != lo && `ifconfig $1>/dev/null 2>&1`; thenScanIpMac $1; elseecho 'NOTE: please enter the right parameter.'echo 'For example: ScanIpMac eth0.'exit 1 fi 2011-08-20 更新了獲取IP和MASK的方法。感謝ubuntu論壇的“我就是我2”的幫助。
2011-08-21 改進獲取字符串長度的方法:printf ${Mask_Bin%%0*}|wc -c,感謝 ubuntu論壇的“fnan”指點
2011-08-25 再次改進,哈哈,還是上面兩位的指點。
2011-08-26 增加參數輸入,使腳本更加靈活。并且提高了速度,以前需要20分鐘,現在只要20秒就行了。
掃描MAC地址腳本結果
呵呵,只列圖哦,不想費話,因為要睡覺了。
192.168.22.1 08:10:17:6d:04:9c 192.168.22.5 08:11:17:6d:a4:21 192.168.22.6 08:14:17:6d:b0:3e 192.168.22.9 08:10:57:6d:aa:0c 192.168.22.20 08:10:57:6d:0a:ae 192.168.22.21 08:60:15:6d:0e:ac總結
以上是生活随笔為你收集整理的扫描MAC地址脚本--保存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity获取摄像头权限
- 下一篇: 计算机视觉就业怎么样?好找工作吗?