测试本网段内的机器存活情况,将所有在线机器的 IP及MAC地址记录在/tmp/hosts文件中
#!/bin/bash
[ -e /tmp/hosts ] && rm -rf /tmp/hosts || touch /tmp/hosts
benji_ip=$(ifconfig ens33 | grep "inet " | awk '{print $2}')
ip_addres=$(ifconfig ens33 | grep "inet " | awk '{print $2}'|sed -r 's/(.)([0-9]+$)//')
for i in {1..254};do
if ping -c 1 -w 1 $ip_addres.$i &> /dev/null;then
mac=$(arp -a $ip_addres.$i|awk '{print $4}')
echo "ip addr $ip_addres.$i is alive"
[ "$ip_addres.$i" == "$benji_ip" ] && mac=$(cat /sys/class/net/ens33/address)
echo -e "IP:$ip_addres.$i\t MAC:$mac" >> /tmp/hosts
else
echo "ip addr $ip_addres.$i is not alive" && continue
fi
done