Il blog di morphey
Post con tag arp
Trovare tutti gli IP attivi in una subnet ed effettuare un lookup per trovare il proprio mac address
11 set
In ambito sistemistico (più networking) si può avere la necessità di avere una lista di tutti gli indirizzi IP che sono già occupati. In più vogliamo sapere anche il mac-address a cui è legato l’ip.
In genere, tute le macchine hanno il ping-reply attivo: per vedere se è online, basta effettuare un ping all’host della macchina per vedere se è attiva.
Possiamo sfruttare, per questo, un comando poco conosciuto ma molto utile in linux: fping.
Non è presente, in genere, nei repository delle solite distribuzioni ma si può trovare, ad esempio, nel rpmforge per Centos/Redhat oppure mirror alternativi. Se non si sa dove prenderlo, basta scaricare i sorgenti e compilarlo.
Fping, come dice l’help, serve ad eseguire un ping su una determinata subnet che può essere specificata in due modi: con la corretta subnet (10.0.0.0/16) oppure in un intervallo (10.0.0.1 10.0.0.255).
Per ricavare il mac-address, possiamo utilizzare l’utilissimo comando arp che serve, appunto, a ricavare il mac-address a partire da un indirizzo IP (lookup).
Chiaramente, per funzione, la macchina da cui si lancia il comando arp DEVE essere sulla stessa rete della subnet altrimenti il lookup non funziona (se passa per un router, chiaramente, il mac-address non verrà visto).
Allora, per fare una combinazione di questi comandi, ho creato uno script in bash per fare questo lavoro:
#!/bin/bash
# coded by morphey (morphey@morphey.org)
FILE_OUT="/root/out_fpingtoarp.txt"
rm -f $FILE_OUT
function FPingToArp() {
for IP in `fping -c1 -g $1|cut -d " " -f 1-1`
do
STRING="$IP `arp -n $IP|grep -v HWtype|awk {'print $3'} `"
echo $STRING >> $FILE_OUT
done
}
#### MODIFICARE QUI ###########
FPingToArp 10.0.2.1/24
###############################
echo;echo;echo "done."
Come si vede, all’interno del codice è possibile lanciare il comando interno FPingToArp quante volte si vuole. Il resto del codice è abbastanza chiaro ![]()
Da modificare anche il FILE_OUT per avere il responso in qualsiasi file che si vuole.
P.S. nel caso si vuole copiare ed incollare il codice sopra, ricordatevi che wordpress mette delle virgolette che bisogna eliminare
Popularity: 16% [?]

Commenti recenti