
दिए गए सबनेट/CIDR रेंज के लिए कई ऑपरेशन करने वाली उपयोगिता प्रोग्राम।
विशेषताएँ • स्थापना • उपयोग • लाइब्रेरी • Discord से जुड़ें
mapCIDR को मास स्कैनिंग ऑपरेशनों के लिए लोड वितरण को आसान बनाने के लिए विकसित किया गया है; इसका उपयोग लाइब्रेरी और स्वतंत्र CLI टूल दोनों के रूप में किया जा सकता है।
sbh, sbc)a, aa)match-ip)filter-ip)s, sr)count)ip-format)si, sp)t4, )go install -v github.com/projectdiscovery/mapcidr/cmd/mapcidr@latest
mapcidr -h
यह टूल के लिए सहायता प्रदर्शित करेगा। यहां वे सभी स्विच हैं जो यह समर्थन करता है।
INPUT:
-cl, -cidr string[] CIDR/IP/File containing list of CIDR/IP to process
PROCESS:
-sbc int Slice CIDRs by given CIDR count
-sbh int Slice CIDRs by given HOST count
-a, -aggregate Aggregate IPs/CIDRs into minimum subnet
-aa, -aggregate-approx Aggregate sparse IPs/CIDRs into minimum approximated subnet
-c, -count Count number of IPs in given CIDR
-t4, -to-ipv4 Convert IPs to IPv4 format
-t6, -to-ipv6 Convert IPs to IPv6 format
-ip-format, -if string[] IP formats (0,1,2,3,4,5,6,7,8,9,10,11)
-zpn, -zero-pad-n int number of padded zero to use (default 3)
-zpp, -zero-pad-permute enable permutations from 0 to zero-pad-n for each octets
FILTER:
-f4, -filter-ipv4 Filter IPv4 IPs from input
-f6, -filter-ipv6 Filter IPv6 IPs from input
-skip-base Skip base IPs (ending in .0) in output
-skip-broadcast Skip broadcast IPs (ending in .255) in output
-mi, -match-ip string[] IP/CIDR/FILE containing list of IP/CIDR to match (comma-separated, file input)
-fi, -filter-ip string[] IP/CIDR/FILE containing list of IP/CIDR to filter (comma-separated, file input)
MISCELLANEOUS:
-s, -sort Sort input IPs/CIDRs in ascending order
-sr, -sort-reverse Sort input IPs/CIDRs in descending order
-si, -shuffle-ip Shuffle Input IPs in random order
-sp, -shuffle-port string Shuffle Input IP:Port in random order
UPDATE:
-up, -update update mapcidr to latest version
-duc, -disable-update-check disable automatic mapcidr update check
OUTPUT:
-verbose Verbose mode
-o, -output string File to write output to
-silent Silent mode
-version Show version of the project
किसी दिए गए CIDR के लिए IPs की सूची प्राप्त करने के लिए, निम्न कमांड का उपयोग करें:
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
किसी दिए गए IP रेंज के लिए IPs की सूची प्राप्त करना भी संभव है, निम्न कमांड का उपयोग करके:
$ 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
दिए गए CIDR या CIDRs की सूची को CIDR गणना द्वारा विभाजित करने या कई और समान छोटे सबनेट में विभाजित करने के लिए, निम्न कमांड का उपयोग करें:
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
दिए गए CIDR को प्रत्येक CIDR में होस्टों की समान संख्या में विभाजित करने के लिए, निम्न कमांड का उपयोग करें:
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
नोट: एक सटीक विभाजन तभी संभव है जब वांछित स्लाइसों की संख्या या प्रति सबनेट होस्टों की संख्या दो की घात हो। अन्यथा, उपकरण वांछित परिणाम प्राप्त करने के लिए स्वचालित रूप से सर्वोत्तम विभाजन रणनीति खोजने का प्रयास करेगा।
कई CIDR रेंज को एक छोटे सबनेट ब्लॉक में मर्ज करने के लिए, निम्न कमांड का उपयोग करें:
$ mapcidr -cl cidrs.txt -aggregate
दिए गए IPs की सूची के लिए CIDR ब्लॉक सूचीबद्ध करने के लिए, निम्न कमांड का उपयोग करें:
$ mapcidr -il ips.txt -aggregate
स्पार्स IP समूहों (केवल संस्करण 4) के लिए अनुमानित एकत्रीकरण करना भी संभव है। अंतिम अंतराल में इनपुट से संबंधित नहीं होने वाले सन्निकट IPs शामिल होंगे:
$ 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
दिए गए IP रेंज (IPv4 | IPv6) के लिए CIDR ब्लॉक सूचीबद्ध करने के लिए, निम्न कमांड का उपयोग करें:
$ mapcidr -cl 192.168.0.1-192.168.0.255 -aggregate
OR
$ 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
दी गई CIDR रेंज की सूची से IPs का मिलान करने के लिए, निम्न कमांड का उपयोग करें:
$ 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
दी गई CIDR रेंज की सूची से IPs को फ़िल्टर करने के लिए, निम्न कमांड का उपयोग करें:
$ 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
दिए गए IP को कई प्रारूपों में प्रस्तुत करने के लिए, -if 0 फ़्लैग का उपयोग सभी समर्थित प्रारूप मानों को प्रदर्शित करने के लिए किया जा सकता है, और एक विशिष्ट प्रकार का प्रारूप एक विशिष्ट इंडेक्स नंबर का उपयोग करके प्रदर्शित किया जा सकता है जैसा कि यहां सूचीबद्ध है। वर्तमान में, 10 अद्वितीय प्रारूप समर्थित हैं।
$ 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 पतों को v6 से v4 नोटेशन या IPv4-मैप्ड नोटेशन से IPv4 पतों में -t4 और -t6 का उपयोग करके क्रमशः IPv4 और 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
नोट:सभी IPv6 पतों को IPv4 में परिवर्तित नहीं किया जा सकता। आप केवल वैध IPv4-प्रतिनिधित्व वाले IPv6 पतों को ही परिवर्तित कर सकते हैं। |
किसी दिए गए CIDR या CIDRs की सूची के लिए होस्टों की संख्या गिनने के लिए, निम्न कमांड का उपयोग करें:
$ echo 173.0.84.0/16 | mapcidr -count -silent
65536
ASN नंबर का IP पता प्राप्त करने के लिए, निम्न कमांड का उपयोग करें:
echo AS15133 | mapcidr -silent
5.104.64.0
5.104.64.1
5.104.64.2
5.104.64.3
5.104.64.4
लाइब्रेरी का सीधे अपने Go प्रोग्राम में उपयोग करना संभव है। निम्नलिखित कोड स्निपेट बताते हैं कि CIDR को सबनेट में कैसे विभाजित किया जाए, और इसे एक निश्चित संख्या में होस्ट वाले सबनेट में कैसे विभाजित किया जाए:
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 को projectdiscovery टीम द्वारा 🖤 से बनाया गया है।
t6