Czy istnieje sposób skanowania w poszukiwaniu wolnych adresów IP w sieci? Używam, nmap -sP 192.168.1.0/24
ale tak naprawdę pokazuje, które hosty działają.
Czy istnieje sposób skanowania w poszukiwaniu wolnych adresów IP w sieci? Używam, nmap -sP 192.168.1.0/24
ale tak naprawdę pokazuje, które hosty działają.
Odpowiedzi:
Używanie Nmap w ten sposób jest dość dokładnym sposobem wykonywania tego, o co prosiłeś, pod warunkiem, że spełnione są pewne warunki wstępne:
Aby uzyskać „dostępne” adresy, musisz uzyskać listę adresów, które Nmap zgłasza jako „wyłączone”. Możesz to zrobić za pomocą prostej komendy awk:
sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'
Podsumowanie zastosowanych opcji Nmap:
-v
opcji, Nmap wydrukuje adresy, które znajdzie jako „w dół”, oprócz tych, które są „w górę”.-sP
zastąpiłem nowszą pisownię -sn
, która nadal wykonuje ten sam skan, ale oznacza „pomiń skanowanie portu” zamiast mylącego „skanowania ping” (ponieważ faza wykrywania hosta niekoniecznie oznacza skanowanie echa ICMP lub ping ).-n
opcja pomija odwrotne wyszukiwanie DNS, co kosztuje trochę czasu, ponieważ nie interesują Cię nazwy, a jedynie adresy IP.-oG
opcja mówi Nmapowi , aby wyświetlił format grep , który jest łatwiejszy do przetworzenia przez awk. Argument „ -
” mówi mu, aby wysłał to wyjście na standardowe wyjście.Polecenie awk wyszukuje następnie „Status: Down” i drukuje drugie pole zawierające adres IP.
Oczywiście, jeśli masz dostęp do uruchomionych konfiguracji przełącznika lub dzierżawy serwera DHCP, możesz uzyskać tę odpowiedź o wiele bardziej autorytatywnie bez skanowania, który może wywołać alarmy bezpieczeństwa.
Nie jestem pewien co do n-map, ale można rozsądnie założyć, że jeśli napiszesz skrypt ping, który wysyła 1 ping na każdy adres, wszystkie hosty, które powrócą z „nieosiągalnym miejscem docelowym”, nie będą zajęte, a wszystko, co wróci, „przekroczy limit czasu żądania” jest zajęty, ale nie odpowiada na ping. Różnica między tymi dwiema odpowiedziami polega na tym, że „docelowy nieosiągalny” nie otrzymał odpowiedzi na swoje żądanie ARP. „Limit czasu żądania” oznacza, że coś zareagowało na żądanie ARP, ale nie pakiet ICMP.
Oto kolejny inspirowany przez Andersa Larssona
dla ip w 172.18.5. {129..254}; do {ping -c 1 -W 1 $ ip; } &> / dev / null || echo $ ip i gotowe | sortować
Co to znaczy: „Spróbuj pingować wszystkie Ips w zakresie. Jeśli„ ping ”nie wydrukuje tego adresu IP”
Jeśli zrobisz
nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'
Działa szybko, ale zauważyłem, że niektóre hosty zgłoszone jako „Down” są w rzeczywistości „Up”