我正在嘗試編寫一個bash腳本來確定網絡上可用的所有主機的IP地址和MAC地址。出於某種原因,Pingpacklist文件不斷變空。我知道arp中的條目並不是永久性的,所以我認爲在ping半個網絡後轉儲arp。但它似乎仍然無法獲得所有地址的ARP條目。任何建議?網絡上的可用主機
#! /bin/bash
tcpdump -i eth1 -n icmp >> Pingpacketlist &
count=0
mod=127;
for ip in 172.16.1.{1..254}; do
let count=count+1;
let res=$count%$mod;
ping -c 1 -W 1 $ip > /dev/null 2> /dev/null;
if [ $? -eq 0 ]; then # for debugging
echo "${ip} is up";
else
echo "${ip} is down";
fi
if [ $res -eq 0 ]; then
arp -n -i eth1 >> ARPResults
fi
done
我確實看到了一些消息來源表明nmap的,但我試圖避免使用的nmap。 – bigbaeng 2012-03-04 02:15:12
任何特殊原因避免它?爲什麼不使用它,如果它是一個好的程序,並做你想要的? – Wesley 2012-03-04 02:18:40
在我正在做的練習題中,它只推薦使用ping,arp和tcpdump。 – bigbaeng 2012-03-04 02:22:38