Linux 用shell統計局域網內的IP+MAC地址,還有沒有使用的IP地址


有的時候需要給服務器或者什麼的配置一個靜態IP地址又不知道那個IP地址沒有被佔用,這個時候使用這個腳本就很方便了。
#cat arping
#!/bin/bash
IPaddr=192.168.0.
ETHX=eth0
IPFILE=/root/arping.txt
UPIPaddr=/tmp/ipup.txt
DOWNIPaddr=/tmp/ipdown.txt
>$IPFILE
touch $DOWNIPaddr
touch $UPIPaddr
touch $IPFILE
for IP in {1..254}
do
arping  -I $ETHX -c 1 $IPaddr$IP >>$IPFILE
done
echo UPIPADDR
echo "  IPADDR            MAC ";  cat $IPFILE  |grep reply |awk '{print $4"    "$5}' |awk -F"[" '{print $1" "$2}' | awk -F"]" '{print $1"  "$2}' | column -t >$UPIPaddr
echo DOWNIPADDR
IPTMP=/tmp/ip.txt
IPTMP2=/tmp/ip2.txt
grep -v ^'[S|R]' $IPFILE |awk -FARPING '{print $2}'|awk -Ffrom '{print $1}' |column -t >$IPTMP
grep -v ^'[S|R]' $IPFILE |awk -F"Unicast reply from" '{print $2}'|awk '{print $1}'|uniq -c |awk '{print $2}' |uniq -c |awk '{print $2}'|column -t >$IPTMP2
cat $IPTMP $IPTMP2 |sort -t "." -k4,4n |uniq -u  >$DOWNIPaddr
VL=`wc -l $UPIPaddr |awk '{print $1}'`
VL2=`wc -l $DOWNIPaddr |awk '{print $1}'`
cat $UPIPaddr
echo 目前有$VL臺主機爲活動狀態
cat $DOWNIPaddr |paste -s
echo 目前有$VL2個可用IP地址
請好用的,直接將已經開着的主機將IP地址與MAC地址對應列出來,並將沒有使用的IP地址打印出來,有時候用的話時非常方便的。
152028281.jpg
NETIP=192.168.0.0/24
echo IPaddr"      " status; nmap -sP $NETIP |grep up |awk '{print $3}' |awk -F"(" '{print $2}'|awk -F")" '{print $1"   up" }' |column -t


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章