
Programma utility per eseguire più operazioni per una data subnet/intervalli CIDR.
Caratteristiche • Installazione • Utilizzo • Libreria • Unisciti a Discord
mapCIDR è stato sviluppato per facilitare la distribuzione del carico nelle operazioni di scansione di massa; può essere utilizzato sia come libreria che come strumento CLI indipendente.
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
Questo mostrerà l'help dello strumento. Ecco tutti gli switch supportati.
INPUT:
-cl, -cidr string[] CIDR/IP/File contenente una lista di CIDR/IP da elaborare
PROCESS:
-sbc int Seziona CIDR per conteggio CIDR specificato
-sbh int Seziona CIDR per conteggio HOST specificato
-a, -aggregate Aggrega IP/CIDR nella sottorete minima
-aa, -aggregate-approx Aggrega IP/CIDR sparsi nella sottorete minima approssimata
-c, -count Conta il numero di IP in un dato CIDR
-t4, -to-ipv4 Converte IP in formato IPv4
-t6, -to-ipv6 Converte IP in formato IPv6
-ip-format, -if string[] Formati IP (0,1,2,3,4,5,6,7,8,9,10,11)
-zpn, -zero-pad-n int numero di zero di padding da utilizzare (default 3)
-zpp, -zero-pad-permute abilita permutazioni da 0 a zero-pad-n per ogni ottetto
FILTER:
-f4, -filter-ipv4 Filtra IP IPv4 dall'input
-f6, -filter-ipv6 Filtra IP IPv6 dall'input
-skip-base Salta IP base (che terminano con .0) nell'output
-skip-broadcast Salta IP broadcast (che terminano con .255) nell'output
-mi, -match-ip string[] IP/CIDR/FILE contenente una lista di IP/CIDR da confrontare (separati da virgola, input da file)
-fi, -filter-ip string[] IP/CIDR/FILE contenente una lista di IP/CIDR da filtrare (separati da virgola, input da file)
MISCELLANEOUS:
-s, -sort Ordina IP/CIDR in input in ordine crescente
-sr, -sort-reverse Ordina IP/CIDR in input in ordine decrescente
-si, -shuffle-ip Mescola IP in input in ordine casuale
-sp, -shuffle-port string Mescola IP:Port in input in ordine casuale
UPDATE:
-up, -update aggiorna mapcidr all'ultima versione
-duc, -disable-update-check disabilita il controllo automatico degli aggiornamenti
OUTPUT:
-verbose Modalità verbosa
-o, -output string File in cui scrivere l'output
-silent Modalità silenziosa
-version Mostra la versione del progetto
Per ottenere una lista di IP per un dato CIDR, usa il seguente comando:
mapcidr -cidr 173.0.84.0/24
____________ ___
__ _ ___ ____ / ___/ _/ _ \/ _ \
/ ' \/ _ '/ _ \/ /___/ // // / , _/
/_/_/_/\_,_/ .__/\___/___/____/_/|_| v0.5
/_/
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
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
È anche possibile ottenere una lista di IP per un dato intervallo IP, usando il seguente comando:
$ 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
Per sezionare un dato CIDR o una lista di CIDR per conteggio CIDR o per sezionare in più sottoreti più piccole e uguali, usa il seguente comando:
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
Per sezionare il dato CIDR in un numero uguale di host in ciascun CIDR, usa il seguente comando:
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
Nota: È possibile ottenere una suddivisione perfetta solo quando il numero desiderato di sezioni o di host per sottorete è una potenza di due. Altrimenti, lo strumento tenterà di trovare automaticamente la migliore strategia di suddivisione per ottenere il risultato desiderato.
Per unire più intervalli CIDR in un blocco di sottorete più piccolo, usa il seguente comando:
$ mapcidr -cl cidrs.txt -aggregate
Per elencare i blocchi CIDR per una data lista di IP, usa il seguente comando:
$ mapcidr -il ips.txt -aggregate
È anche possibile eseguire aggregazioni approssimate per gruppi IP sparsi (solo versione 4). L'intervallo finale conterrà IP contigui non appartenenti all'input:
$ 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
Per elencare i blocchi CIDR per un dato intervallo IP (IPv4 | IPv6), usa il seguente comando:
$ mapcidr -cl 192.168.0.1-192.168.0.255 -aggregate
OPPURE
$ 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
Per trovare IP corrispondenti dalla lista data di intervalli CIDR, usa il seguente comando:
$ 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
Per filtrare IP dalla lista data di intervalli CIDR, usa il seguente comando:
$ 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
Per rappresentare un dato IP in più formati, il flag -if 0 può essere usato per mostrare tutti i valori di formato supportati, e un tipo specifico di formato può essere mostrato usando un numero di indice specifico come elencato qui. Attualmente, sono supportati 10 formati unici.
$ 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
Gli indirizzi IPv4 | IPv6 possono essere convertiti dalla notazione v6 a v4 o da notazione mappata IPv4 in indirizzi IPv4 usando -t4 e -t6 rispettivamente per IPv4 e IPv6.
$ 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
Nota:Non tutti gli indirizzi IPv6 possono essere convertiti in IPv4. Puoi convertire solo indirizzi IPv6 che rappresentano validi indirizzi IPv4. |
Per contare il numero di host per un dato CIDR o lista di CIDR, usa il seguente comando:
$ echo 173.0.84.0/16 | mapcidr -count -silent
65536
Per ottenere l'indirizzo IP del numero ASN, usa il seguente comando:
echo AS15133 | mapcidr -silent
5.104.64.0
5.104.64.1
5.104.64.2
5.104.64.3
5.104.64.4
È possibile utilizzare la libreria direttamente nei tuoi programmi Go. I seguenti snippet di codice illustrano come dividere un CIDR in sottoreti, e come dividere lo stesso in sottoreti contenenti un certo numero di host:
package main
import (
"fmt"
"github.com/projectdiscovery/mapcidr"
)
func main() {
// Divide the CIDR into two subnets
subnets1 := mapcidr.SplitN("192.168.1.0/24", 2)
for _, subnet := range subnets1 {
fmt.Println(subnet)
}
// Divide the CIDR into two subnets containing 128 hosts each
subnets2 := mapcidr.SplitByNumber("192.168.1.0/24", 128)
for _, subnet := range subnets2 {
fmt.Println(subnet)
}
// List all IPs in the CIDR
ips, _ := mapcidr.IPAddresses("192.168.1.0/24")
for _, ip := range ips {
fmt.Println(ip)
}
}
mapCIDR è realizzato con 🖤 dal team di projectdiscovery.
t4t6