
برنامج مساعد لتنفيذ عمليات متعددة لنطاقات subnet/CIDR محددة.
الميزات • التثبيت • الاستخدام • كمكتبة • انضم إلى Discord
تم تطوير mapCIDR لتسهيل توزيع الأحمال في عمليات المسح الجماعي؛ يمكن استخدامه كمكتبة وكأداة سطر أوامر مستقلة.
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/ملف يحتوي على قائمة CIDR/IP للمعالجة
PROCESS:
-sbc int تقطيع CIDRs حسب عدد CIDR معين
-sbh int تقطيع CIDRs حسب عدد المضيفين معين
-a, -aggregate تجميع IPs/CIDRs في أقل شبكة فرعية
-aa, -aggregate-approx تجميع IPs/CIDRs المتناثرة تقريبياً في أقل شبكة فرعية تقريبية
-c, -count حساب عدد IPs في CIDR معين
-t4, -to-ipv4 تحويل IPs إلى تنسيق IPv4
-t6, -to-ipv6 تحويل IPs إلى تنسيق IPv6
-ip-format, -if string[] تنسيقات IP (0,1,2,3,4,5,6,7,8,9,10,11)
-zpn, -zero-pad-n int عدد الأصفار المبطنة للاستخدام (الافتراضي 3)
-zpp, -zero-pad-permute تمكين التباديل من 0 إلى zero-pad-n لكل أوكتيت
FILTER:
-f4, -filter-ipv4 تصفية IPs IPv4 من الإدخال
-f6, -filter-ipv6 تصفية IPs IPv6 من الإدخال
-skip-base تخطي IPs الأساسية (المنتهية بـ .0) في الإخراج
-skip-broadcast تخطي IPs البث (المنتهية بـ .255) في الإخراج
-mi, -match-ip string[] IP/CIDR/ملف يحتوي على قائمة IP/CIDR للمطابقة (مفصولة بفواصل، إدخال ملف)
-fi, -filter-ip string[] IP/CIDR/ملف يحتوي على قائمة IP/CIDR للتصفية (مفصولة بفواصل، إدخال ملف)
MISCELLANEOUS:
-s, -sort فرز IPs/CIDRs المدخلة تصاعدياً
-sr, -sort-reverse فرز IPs/CIDRs المدخلة تنازلياً
-si, -shuffle-ip خلط IPs المدخلة بشكل عشوائي
-sp, -shuffle-port string خلط IP:Port المدخلة بشكل عشوائي
UPDATE:
-up, -update تحديث mapcidr إلى أحدث إصدار
-duc, -disable-update-check تعطيل التحقق التلقائي من تحديث mapcidr
OUTPUT:
-verbose وضع التفاصيل
-o, -output string ملف لكتابة الإخراج إليه
-silent وضع الصامت
-version عرض إصدار المشروع
للحصول على قائمة IPs لـ CIDR معين، استخدم الأمر التالي:
mapcidr -cidr 173.0.84.0/24
____________ ___
__ _ ___ ____ / ___/ _/ _ \/ _ \
/ ' \/ _ '/ _ \/ /___/ // // / , _/
/_/_/_/\_,_/ .__/\___/___/____/_/|_| v0.5
/_/
projectdiscovery.io
[WRN] استخدم بحذر. أنت مسؤول عن أفعالك
[WRN] المطورون لا يتحملون أي مسؤولية ولا يكونون مسؤولين عن أي سوء استخدام أو ضرر.
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
يمكنك أيضاً الحصول على قائمة IPs لنطاق IP معين باستخدام الأمر التالي:
$ 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
لسرد كتل CIDR لقائمة معينة من IPs، استخدم الأمر التالي:
$ mapcidr -il ips.txt -aggregate
من الممكن أيضاً إجراء عمليات تجميع تقريبية لمجموعات IPs المتناثرة (الإصدار 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
لسرد كتل CIDR لنطاق IP معين (IPv4 | IPv6)، استخدم الأمر التالي:
$ 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
لمطابقة IPs من قائمة CIDR المحددة، استخدم الأمر التالي:
$ 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
لتصفية IPs من قائمة CIDR المحددة، استخدم الأمر التالي:
$ 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-mapped إلى عناوين 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. يمكنك فقط تحويل عناوين IPv6 الصالحة الممثلة كـ IPv4. |
لحساب عدد المضيفين لـ CIDR معين أو قائمة CIDRs، استخدم الأمر التالي:
$ echo 173.0.84.0/16 | mapcidr -count -silent
65536
للحصول على عنوان IP لرقم ASN، استخدم الأمر التالي:
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