Body
Mit dem folgenden Script wird ein IP-Bereich geprüft, ob die IP-Adresse im DNS bekannt ist und welche MAC-Adresse ein Host hat. Zur Ausführung sind root-Rechte (für arp) erforderlich.
#!/bin/bash
echo "IP-Adresse,Hostname,MAC"
for (( a=16 ; a < 24 ; a++ )) ; do
for (( b = 1 ; b < 255 ; b++ )) ; do
IP="17.121.${a}.${b}"
echo -n "${IP}"
DNSNAME=$(host ${IP} | cut -f 5 -d " ")
if [[ ${DNSNAME} = '3(NXDOMAIN)' ]] ; then
DNSNAME=""
fi
ping -c 2 ${IP} >/dev/null
MAC=$(arp ${IP} | tail -n 1 | gawk '{print $3}')
if [[ ${MAC} = 'eth0' ]] ; then
MAC=""
fi
echo ",${DNSNAME},${MAC}"
done
done