
Dienstprogramm zur Durchführung mehrerer Operationen für bestimmte Subnetz-/CIDR-Bereiche.
Funktionen • Installation • Verwendung • Bibliothek • Discord beitreten
mapCIDR wurde entwickelt, um die Lastverteilung für Massenscan-Operationen zu erleichtern; es kann sowohl als Bibliothek als auch als eigenständiges CLI-Tool verwendet werden.
sbh, sbc)a, aa)match-ip)filter-ip)s, sr)count)ip-format)si, sp)go install -v github.com/projectdiscovery/mapcidr/cmd/mapcidr@latest
mapcidr -h
Dies zeigt die Hilfe für das Tool an. Hier sind alle unterstützten Schalter.
EINGABE:
-cl, -cidr string[] CIDR/IP/Datei mit einer Liste von CIDR/IP, die verarbeitet werden sollen
VERARBEITUNG:
-sbc int CIDR nach angegebener CIDR-Anzahl aufteilen
-sbh int CIDR nach angegebener HOST-Anzahl aufteilen
-a, -aggregate IPs/CIDRs in das kleinste Subnetz zusammenfassen
-aa, -aggregate-approx Spärliche IPs/CIDRs in das kleinste approximierte Subnetz zusammenfassen
-c, -count Anzahl der IPs im angegebenen CIDR zählen
-t4, -to-ipv4 IPs in das IPv4-Format konvertieren
-t6, -to-ipv6 IPs in das IPv6-Format konvertieren
-ip-format, -if string[] IP-Formate (0,1,2,3,4,5,6,7,8,9,10,11)
-zpn, -zero-pad-n int Anzahl der zu verwendenden aufgefüllten Nullen (Standard: 3)
-zpp, -zero-pad-permute Permutationen von 0 bis zero-pad-n für jedes Oktett aktivieren
FILTER:
-f4, -filter-ipv4 IPv4-IPs aus der Eingabe filtern
-f6, -filter-ipv6 IPv6-IPs aus der Eingabe filtern
-skip-base Basis-IPs (endend auf .0) in der Ausgabe überspringen
-skip-broadcast Broadcast-IPs (endend auf .255) in der Ausgabe überspringen
-mi, -match-ip string[] IP/CIDR/DATEI mit einer Liste von IP/CIDR zum Abgleichen (kommasepariert, Dateieingabe)
-fi, -filter-ip string[] IP/CIDR/DATEI mit einer Liste von IP/CIDR zum Filtern (kommasepariert, Dateieingabe)
VERSCHIEDENES:
-s, -sort Eingabe-IPs/CIDRs in aufsteigender Reihenfolge sortieren
-sr, -sort-reverse Eingabe-IPs/CIDRs in absteigender Reihenfolge sortieren
-si, -shuffle-ip Eingabe-IPs in zufälliger Reihenfolge mischen
-sp, -shuffle-port string Eingabe-IP:Port in zufälliger Reihenfolge mischen
AKTUALISIERUNG:
-up, -update mapcidr auf die neueste Version aktualisieren
-duc, -disable-update-check automatische Überprüfung auf mapcidr-Updates deaktivieren
AUSGABE:
-verbose Ausführlicher Modus
-o, -output string Datei, in die die Ausgabe geschrieben werden soll
-silent Stiller Modus
-version Version des Projekts anzeigen
Um eine Liste von IPs für ein bestimmtes CIDR zu erhalten, verwenden Sie den folgenden Befehl:
mapcidr -cidr 173.0.84.0/24
____________ ___
__ _ ___ ____ / ___/ _/ _ \/ _ \
/ ' \/ _ '/ _ \/ /___/ // // / , _/
/_/_/_/\_,_/ .__/\___/___/____/_/|_| v0.5
/_/
projectdiscovery.io
[WRN] Mit Vorsicht verwenden. Sie sind für Ihre Handlungen verantwortlich
[WRN] Die Entwickler übernehmen keine Haftung und sind nicht verantwortlich für Missbrauch oder Schäden.
173.0.84.0
173.0.84.1
173.0.84.2
173.0.84.3
173.0.84.4
173.0.84.5
173.0.84.13
173.0.84.14
173.0.84.15
173.0.84.16
Es ist auch möglich, eine Liste von IPs für einen bestimmten IP-Bereich mit dem folgenden Befehl zu erhalten:
$ echo "192.168.0.0-192.168.0.5" | mapcidr
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
Um ein bestimmtes CIDR oder eine Liste von CIDRs nach CIDR-Anzahl aufzuteilen oder in mehrere gleich große kleinere Subnetze zu unterteilen, verwenden Sie den folgenden Befehl:
mapcidr -cidr 173.0.84.0/24 -sbc 10 -silent
173.0.84.0/27
173.0.84.32/27
173.0.84.64/27
173.0.84.96/27
173.0.84.128/27
173.0.84.160/27
173.0.84.208/28
173.0.84.192/28
173.0.84.240/28
173.0.84.224/28
Um das angegebene CIDR für eine gleiche Anzahl von Hosts in jedem CIDR aufzuteilen, verwenden Sie den folgenden Befehl:
mapcidr -cidr 173.0.84.0/16 -sbh 20000 -silent
173.0.0.0/18
173.0.64.0/18
173.0.128.0/18
173.0.192.0/18
Hinweis: Eine perfekte Aufteilung ist nur möglich, wenn die gewünschte Anzahl von Teilen oder Hosts pro Subnetz eine Zweierpotenz ist. Andernfalls versucht das Tool automatisch, die beste Aufteilungsstrategie zu finden, um das gewünschte Ergebnis zu erzielen.
Um mehrere CIDR-Bereiche zu einem kleineren Subnetzblock zusammenzufassen, verwenden Sie den folgenden Befehl:
$ mapcidr -cl cidrs.txt -aggregate
Um CIDR-Blöcke für eine bestimmte Liste von IPs aufzulisten, verwenden Sie den folgenden Befehl:
$ mapcidr -il ips.txt -aggregate
Es ist auch möglich, approximierte Zusammenfassungen für spärliche IP-Gruppen (nur Version 4) durchzuführen. Das endgültige Intervall enthält zusammenhängende IPs, die nicht zur Eingabe gehören:
$ cat ips.txt
1.1.1.1
1.1.1.16
1.1.1.31
$ cat ips.txt | mapcidr -aggregate-approx
1.1.1.0/27
Um CIDR-Blöcke für einen bestimmten IP-Bereich (IPv4 | IPv6) aufzulisten, verwenden Sie den folgenden Befehl:
$ mapcidr -cl 192.168.0.1-192.168.0.255 -aggregate
ODER
$ echo 192.168.0.1-192.168.0.255 | mapcidr -aggregate
192.168.0.1/32
192.168.0.2/31
192.168.0.4/30
192.168.0.8/29
192.168.0.16/28
192.168.0.32/27
192.168.0.64/26
192.168.0.128/25
Um IPs aus der angegebenen Liste von CIDR-Bereichen abzugleichen, verwenden Sie den folgenden Befehl:
$ mapcidr -cidr 192.168.1.0/24 -mi 192.168.1.253,192.168.1.252
$ mapcidr -cidr 192.168.1.0/24 -mi ip_list_to_match.txt
Um IPs aus der angegebenen Liste von CIDR-Bereichen zu filtern, verwenden Sie den folgenden Befehl:
$ mapcidr -cidr 192.168.1.224/28 -fi 192.168.1.233,192.168.1.234
$ mapcidr -cidr 192.168.1.224/28 -fi ip_list_to_filter.txt
Um eine bestimmte IP in mehreren Formaten darzustellen, kann das Flag -if 0 verwendet werden, um alle unterstützten Formatwerte anzuzeigen. Ein bestimmter Formattyp kann mit einer bestimmten Indexnummer angezeigt werden, wie hier aufgeführt. Derzeit werden 10 eindeutige Formate unterstützt.
$ echo 127.0.1.0 | mapcidr -if 0 -silent
127.0.1.0
127.1
0177.0.01.0
0x7f.0x0.0x1.0x0
0x7f000100
0xabfa659dfa7f000100
281472812450048
111111111111111101111111000000000000000100000000
0x7f.0.01.0x0
::ffff:7f00:0100
%31%32%37%2E%30%2E%31%2E%30
127.000.001.000
IPv4 | IPv6-Adressen können entweder von der v6- in die v4-Notation oder von der IPv4-abgebildeten Notation in IPv4-Adressen mit -t4 und -t6 in IPv4 bzw. IPv6 konvertiert werden.
$ cat ips.txt
1.1.1.1
2.2.2.2
$ mapcidr -cl ips.txt -t6
00:00:00:00:00:ffff:0101:0101
00:00:00:00:00:ffff:0202:0202
Hinweis:Nicht alle IPv6-Adressen können in IPv4 konvertiert werden. Sie können nur gültige IPv4-dargestellte IPv6-Adressen konvertieren. |
Um die Anzahl der Hosts für ein bestimmtes CIDR oder eine Liste von CIDRs zu zählen, verwenden Sie den folgenden Befehl:
$ echo 173.0.84.0/16 | mapcidr -count -silent
65536
Um die IP-Adresse der ASN-Nummer zu erhalten, verwenden Sie den folgenden Befehl:
echo AS15133 | mapcidr -silent
5.104.64.0
5.104.64.1
5.104.64.2
5.104.64.3
5.104.64.4
Es ist möglich, die Bibliothek direkt in Ihren Go-Programmen zu verwenden. Die folgenden Codeausschnitte zeigen, wie man ein CIDR in Subnetze unterteilt und wie man es in Subnetze mit einer bestimmten Anzahl von Hosts unterteilt:
package main
import (
"fmt"
"github.com/projectdiscovery/mapcidr"
)
func main() {
// Teilen Sie das CIDR in zwei Subnetze auf
subnets1 := mapcidr.SplitN("192.168.1.0/24", 2)
for _, subnet := range subnets1 {
fmt.Println(subnet)
}
// Teilen Sie das CIDR in zwei Subnetze mit jeweils 128 Hosts auf
subnets2 := mapcidr.SplitByNumber("192.168.1.0/24", 128)
for _, subnet := range subnets2 {
fmt.Println(subnet)
}
// Alle IPs im CIDR auflisten
ips, _ := mapcidr.IPAddresses("192.168.1.0/24")
for _, ip := range ips {
fmt.Println(ip)
}
}
mapCIDR wurde mit 🖤 vom projectdiscovery-Team entwickelt.
t4t6