pobierz cały adres IP z maski podsieci


0

Mam tę listę adresów IP pokazaną poniżej. Jak mogę obliczyć wszystkie adresy IP z tego w systemie Linux? Czy są jakieś narzędzia, które mogą to dla mnie obliczyć? Potrzebuję tego, aby sprawdzić, czy nie zbanowałem niektórych adresów IP chmury chmury. Jako firewall używam firewall i banuję z fail2ban single IP. Jak wiem, to nie mogę wykryć subent mask z adresu IP, prawda?

204.93.240.0/24
204.93.177.0/24
199.27.128.0/21
173.245.48.0/20
103.22.200.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20

1
Co rozumiesz przez obliczanie wszystkich adresów IP? Masz już listę adresów IP. Czy chcesz zmienić 11.22.33.0/5 na 11.22.33.0 11.22.33.1 ... 11.22.33.5?
terdon

Odpowiedzi:


1

Nie jestem pewien, czy zrozumiałem twoje pytanie, ale jeśli chcesz rozszerzyć listę zakresów adresów IP na wszystkie adresy IP, które zawierają wymienione zakresy, spróbuj tego:

$ perl -ne '/(.+)\.(\d+)\/(\d+)$/; print "$1.$_\n" foreach($2..$3)' iplist.txt > IPs

Spowoduje to utworzenie pliku o nazwie IPs:

204.93.240..0
204.93.240..1
204.93.240..2
204.93.240..3
 ...

188.114.96..18
188.114.96..19
188.114.96..20

Następnie możesz zapętlić plik i zastosować do każdego adresu IP dowolne potrzebne narzędzie (na przykład ping):

$ while read ip; do ping $ip; done < IPs

Możesz także połączyć dwa polecenia, jeśli nie chcesz utworzyć pliku ze wszystkimi adresami IP:

$ perl -ne '/(.+)\.(\d+)\/(\d+)$/; print "$1.$_\n" foreach($2..$3)' iplist.txt | while read ip; do ping $ip; done

1

Miałem ten sam problem, a skrypt Perla w zaakceptowanej odpowiedzi nie działał dla mnie, ponieważ uwzględniał tylko ostatni bajt IPv4.

Wymyśliłem tutaj własną implementację, która jest dostępna zarówno w kodzie źródłowym, jak i formacie binarnym dla różnych systemów tutaj: CIDR-to-IP-list


0

Nie, od czasu wprowadzenia CIDR nie można uzyskać maski sieci z adresu IP. Możesz obliczyć adres rozgłoszeniowy (najwyższy adres w podsieci), konwertując adres sieciowy na liczbę całkowitą, dodając 2 ^ (maska ​​sieci) i przekonwertuj wynik z powrotem na zapis dziesiętny z kropką dziesiętną .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.