Einfacher Netzwerkscan

Gespeichert von Erik Wegner am/um Do, 01.04.2010 - 22:27
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

Kategorien