Bash-Skript, um alle IPs im Präfix aufzulisten

8

Ich versuche ein Skript zu erstellen, mit dem ich eine Reihe von Präfixen eingeben kann, die dann alle IP-Adressen innerhalb der Präfixe auflisten (einschließlich Netzwerk / Host / Broadcast).

Ein Beispiel wäre:

%Vor%

Es gibt einige Python / Perl-Skripte, die das können, aber ich hoffe, ein einfaches Bash-Skript zu haben, wie es auf Systemen ohne Perl / Python verwendet werden kann (ja, ich weiß ..)

    
user2463938 07.06.2013, 14:44
quelle

9 Antworten

16

Hier ist, was ich verwende, um alle IP-Adressen in einem bestimmten CIDR-Block

zu generieren %Vor%

Einfach so einfach

Der obige Befehl gibt dies aus

%Vor%     
John Vossler 14.07.2015 16:49
quelle
8

Auch ich habe nach dieser Lösung gesucht und festgestellt, dass das @scherand-Skript großartig funktioniert hat. Ich habe auch dieses Skript hinzugefügt, um Ihnen mehr Optionen zu geben. Hilfedatei unter.

DIESES SCRIPT ERWEITERT EINE CIDR ADRESSE.

SYNOPSIS

%Vor%

BESCHREIBUNG

  

-h Zeigt diesen Hilfebildschirm an

     

-f Erzwingt die Überprüfung der Netzwerkgrenze, wenn STRING (s) angegeben wird

     

-i liest aus einer Eingabedatei (Datei sollte eine CIDR pro Zeile enthalten) (keine Überprüfung der Netzwerkgrenze)

     

-b Führt das gleiche aus wie -i, aber mit Überprüfung der Netzwerkgrenze

BEISPIELE

  

./ cidr-to-ip.sh 192.168.0.1/24

     

./ cidr-to-ip.sh 192.168.0.1/24 10.10.0.0/28

     

./ cidr-to-ip.sh -f 192.168.0.0/16

     

./ cidr-to-ip.sh -i Eingabedatei.txt

     

./ cidr-to-ip.sh -b Eingabedatei.txt

%Vor%     
Kyoungs 21.01.2015 02:33
quelle
2

Ich denke, dieses kleine Skript, das ich zusammengehackt habe, macht den Trick. Wenn nicht, ist es definitiv ein Ausgangspunkt! Viel Glück.

%Vor%     
rberg 11.06.2013 12:40
quelle
2

Ich habe kürzlich eine Funktion geschrieben, um alle IP-Adressen von einer gegebenen Netzwerkadresse zu erzeugen. Die Funktion übernimmt die Netzwerkadresse als Argument und akzeptiert CIDR- und Subnetzmasken. Das Skript speichert dann alle IPs in der Array-Variablen $ ips.

Code

%Vor%

Beispiel

%Vor%     
Florian Feldhaus 08.08.2013 07:41
quelle
0

Ich habe @ rberg Skript ein wenig erweitert.

  • Überprüfen Sie, ob das von Ihnen angegebene "Netzwerk" wirklich ein Netzwerk ist (verwenden Sie -f , um die Überprüfung zu überspringen)
  • Handle Netzmasken größer als /24

Vielleicht ist das für jemanden von Nutzen.

%Vor%     
scherand 19.03.2014 07:59
quelle
0

Sie können dieses Skript verwenden (Sie müssen "bc" auf Ihrem System installiert haben):

%Vor%     
Alireza 08.06.2014 11:07
quelle
0

Ich habe gerade einen Weg gefunden, alle IP-Adressen in einem CIDR-Bereich in einigen Zeilen Bash zu drucken. (Ich nannte es nach dem Ubuntu-Befehl mit dem gleichen Namen prips . Offensichtlich Wenn dieser Befehl verfügbar ist, verwenden Sie diesen.)

%Vor%

Beachten Sie, dass ich die RedHat Linux (Erik Troan, Preston Brown) Version von ipcalc , nicht die Krischan Jodies Version, die auf einigen Plattformen (z. B. Mac OS X) installiert ist, annehmen.

Beispiele:

%Vor%

Berechnet die korrekte Anzahl von Adressen in einem / 23 Netzwerken:

%Vor%

Überprüfung einiger dieser Adressen mit cut:

%Vor%

Und vielleicht zu langsam aber auch richtig generiert die 16 Millionen Adressen in einem / 8-Netzwerk:

%Vor%     
Alex Harvey 16.05.2017 12:29
quelle
0

Ich wollte oben eine Antwort kommentieren, habe aber noch nicht die Antwort.

Unter Verwendung der obersten Lösung mit NMAP habe ich das zu meinem .bashrc

hinzugefügt %Vor%

Jetzt kann ich das mit nur expand-ip targs

verwenden     
Trevor Steen 27.08.2017 19:44
quelle
-1

Dies ist der beste Weg, IPs in einem Subnetz zu zählen:

%Vor%     
Alby 31.08.2016 18:05
quelle

Tags und Links