W mojej pracy jest dużo komputerów i chcę żartować. Mogę zamknąć komputer przez sieć, ale znalezienie adresów IP jest dla mnie trudne.
Jak mogę łatwo znaleźć wszystkie internetowe adresy IP od 192.168.1.aa do 192.168.1.zz?
networking
Eric Carvalho
źródło
źródło
angry ip scanner
Odpowiedzi:
Zasadniczo
nmap
jest dość przydatny do szybkiego skanowania sieci.Aby zainstalować nmap, wprowadź następujące polecenie w terminalu:
Po zainstalowaniu aplikacji wprowadź następujące polecenie:
To pokaże, którzy hosty odpowiedzieli na żądania ping w sieci między 192.168.1.0 a 192.168.1.255.
W przypadku starszych wersji Nmap użyj
-sP
:Dodatkowe informacje można znaleźć na następujących stronach:
Podręcznik instalacji NMAP
Przewodnik referencyjny NMAP
Jest to bardzo przydatne narzędzie do nauki.
źródło
Jeśli wszystkie komputery w sieci to Ubuntu lub inna dystrybucja korzystająca z
avahi-daemon
( DNS-SD ), możesz uzyskać ich szczegółową listę (z nazwą hosta i adresem IP), wykonując:Jeśli chcesz poznać wszystkie adresy IP używane w sieci, możesz użyć
arp-scan
:Ponieważ nie jest instalowany domyślnie, musisz go zainstalować za pomocą
sudo apt-get install arp-scan
.arp-scan
wysyła pakiety ARP do sieci lokalnej i wyświetla otrzymane odpowiedzi, dzięki czemu pokazuje nawet zaporowe hosty (które blokują ruch na podstawie pakietów IP).źródło
arp-scan
nie można znaleźć wszystkich urządzeń powiązanych z moją siecią bezprzewodową. Teraz na przykładsudo arp-scan 192.168.2.0/24
pokazuje 2 wyniki (.1 i .1), podczas gdynmap -sn 192.168.2.0/24
pokazuje 4 wyniki (.1, .2, .3 i .4). Wydaje się, żenmap
jest to bardziej dokładne (wiem na pewno, że do sieci podłączone są 4 urządzenia). Dlaczego to?nmap
.arp-scan
jest miłe !Uwaga dla czytelnika : Oryginalna odpowiedź została opublikowana jakiś czas temu, kiedy uczyłem się tylko skryptowania powłoki. Zobacz poprawioną wersję poniżej, aby uzyskać nowy i ulepszony skrypt, który działa znacznie szybciej.
Oryginalna odpowiedź
nmap
byłby moim wyborem nr 1, ale co, jeśli go nie masz? Zrób to sam, używając skryptu ping, który ręcznie przechodzi przez każdy możliwy adres IP w sieci. Mamy tutaj tylko pętlę while, w której ustawiamy ostatnią liczbę w adresie, wykonujemy cichy pojedynczy ping na adres, sprawdzamy, czy polecenie się powiodło, czy nie (a jeśli się powiedzie, to host jest oczywiście w górze) iprintf
instrukcja. Szybki i brudny sposób, napisanie go zajęło mi około 10 minut, ale środowisko wykonawcze może być nieco wolne.Ponowna odpowiedź
Oryginalnie opublikowałem tę odpowiedź w sierpniu 2015 roku. Od tego czasu dowiedziałem się nieco więcej o skryptach powłoki, a kiedy zobaczyłem ten skrypt, pomyślałem, że warto ponownie przejrzeć tę odpowiedź, aby dodać kilka ulepszeń. Oto kilka pomysłów:
Skrypt jest oczywiście powolny i
ping
czeka na odpowiedź hosta. Domyślnieping
dla dwóch RTT, które mogą się różnić w zależności od stopnia przeciążenia twojej sieci, i, o ile rozumiem, protokół TCP podwaja czas oczekiwania za każdym razem (przynajmniej zgodnie z tym ). Więc możemy zmusićping
do przekroczenia limitu czasu z-w 1
flagą. Ponieważ mamy 256 adresów i zakładamy 1 sekundę na każdy adres, skrypt zajmie około 256/60 = 4,27 minuty.Wykonanie polecenia, a następnie przechwycenie statusu wyjścia
$?
nie było tak naprawdę konieczne.if ... then;...fi
Może działać bezpośrednio na komendy. Innymi słowy, wystarczy to zrobić:printf
Komenda może być zapisane jako tak:Jest to bardziej zmiana stylistyczna, ale jest spójna z tym, jak
printf
działa i wygląda w wielu innych językach, ze"$NUM"
zmienną cytowania . Cytowanie tutaj nie jest konieczne - ponieważ mamy do czynienia tylko z liczbami, nie musimy przewidywać podziału słów ze względu na spacje w zmiennej.Znacznie lepszą poprawę wydajności można osiągnąć, jeśli spawnujemy kilka procesów w tle. Poniższa edycja skryptu właśnie to robi. Włożyłem
ping
iprintf
do funkcji,pingf
(tak, banalne imię, wiem). Teraz jest też jednamain
funkcja, która wykonuje zapętlanie i wywoływaniepingf
.O ile lepiej to działa? Właściwie nieźle zajmuje kilka sekund.
O czym należy pamiętać
źródło
Netdiscover może być twoją odpowiedzią.
Aby zainstalować przez terminal:
przykładowe użycie:
Adres IP z adresami MAC wyświetli się na twoim terminalu. Zobacz zrzut ekranu
mam nadzieję, że ci pomogę
odniesienie
źródło
*** buffer overflow detected ***: netdiscover terminated
.fping
jest doskonałym narzędziem do skanowania wielu hostów w sieci za pomocą ICMP. Jeśli nie jest zainstalowany, możesz go zainstalować:fping
wysyła pakiety ICMP ECHO_REQUEST i oznacza hosta jako Up, jeśli pobierze ECHO_RESPONSE od hosta.Na przykład, aby przeskanować hosty podsieci
192.168.1.0/24
, możesz:Dla określonej liczby hostów, np. Od
192.168.1.15
do192.168.1.140
:fping
jest wysoce konfigurowalny, np. ile pakietów zostanie wysłanych, czas oczekiwania na odpowiedź, format wyjściowy itp.Sprawdź,
man fping
aby uzyskać więcej pomysłów.źródło