for i in {1..254}; do host x.x.x.$i|grep -v NXDOMAIN; done - szybki revdns recon danej sieci /24
Powyższy oneliner sprawdzi odwrotną translację adresów DNS z zakresu x.x.x.1 - x.x.x.254, odsiewając adresy, dla których revDNS nie istnieje. Rozbijając go na mniejsze części:
Gdybyśmy chcieli sprawdzić sieć z maską /16, a więc zakres x.x.0.1 - x.x.255.254, potrzebowalibyśmy dwóch pętli:
for i in $(seq 0 255); do
for j in `seq 1 254`; do
host x.x.$i.$j | grep -v NXDOMAIN
done
done
W tym przykładzie, zamiast wygenerować szereg liczb z wykorzystaniem {..} użyliśmy dwóch równoważnych konstrukcji $() oraz ``, będącymi tzw. command substitution, które powodują wstawienie wyniku polecenia w miejscu gdzie się znajdują. Samo narzędzie seq służy do generowania sekwencji liczb, np.:
seq 10 1- liczby od 10 do 1seq -w 0 0.5 3- liczby od 0 do 3 ze skokiem co 0.5, dodatkowo uzupełniane zerami, żeby wizualnie miały taką samą szerokość
Jak to działa — krok po kroku
Rozłóżmy onelinera na czynniki pierwsze:
for i in {1..254}; do
pętla, w której do zmiennej $i zostaną przypisane liczby od 1 do 254
host x.x.x.x.$i
sprawdź odwrotny DNS dla kolejnego adresu IP
| grep -v NXDOMAIN
odrzućmy wszystkie linijki zawierające frazę NXDOMAIN co oznacza, że dany IP nie posiada revdnsa
; done
koniec pętli.