martedì 13 agosto 2013

risolvere l'host

Mi succede fin troppo spesso di dimenticarmi l'ip delle macchine e/o i nomi di rete.
Per questo, ma soprattutto per farvi vedere che sono ancora vivo, vi scrivo 4 righe di bash per aiutare la memoria.

Supponete di dover listare le macchine nel domino 151.123.45.*
Potete crearvi un file risolvi.sh che contiene il seguente script bash

#!/bin/bash
base="151.100.52" #base del vostro ip
#loop da base.1 a base.255
for i in {1..255}
do
    ip=$base.$i #compone l'ip completo
    a=`host $ip | cut -d' ' -f5` #risolve l'ip e prende l'hostname
    b=`echo "$a" | grep "(NXDOMAIN)"` #controlla che il comando abbia risolto
    #se ha risolto l'ip scrive l'hostname
    if [ $? -ne 0 ]
    then
        echo $ip $a
    fi
done

Poi rendetelo eseguibile con
 chmod a+x risolvi.sh
e lanciatelo
 ./risolvi.sh
avrete un output tipo
 151.123.45.1 bazzone.hostozzo.it
 151.123.45.45 bobafett.hostozzo.it
 151.123.45.99 mazingaz.hostozzo.it
 151.123.45.121 uollano.hostozzo.it
 151.123.45.201 winzozz.hostozzo.it
 151.123.45.253 tettamanzi.hostozzo.it


Dettagli:
cut -d' ' -f5
 spezza la stringa ad ogni spazio e prende il 5 elemento.
echo "$a" | grep "(NXDOMAIN)"
 verifica che la stringa non contenga (NXDOMAIN), ovvero abbia risolto l'ip
$? -ne 0
 verifica che l'ultimo comando eseguito (il grep) non abbia trovato nulla (vedi sopra)

fine

Nessun commento: