Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Forerunner — مكتبة مسح شبكات سريعة وقابلة للتوسع تتميز بتعدد الخيوط، واستقصاء ping، وجلبات المسح. | Kitploit
أدوات/GitHubGitHub/jasondrawdy/forerunner
الاستطلاعتخطيط الشبكةمسح المنافذجمع المعلوماتالأدوات والمكونات
GitHubjasondrawdy/forerunner

Forerunner

مكتبة مسح شبكات سريعة وقابلة للتوسع تتميز بتعدد الخيوط، واستقصاء ping، وجلبات المسح.

عرض المستودع
391445منذ 6 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

الرائد

مكتبة الرائد هي مكتبة شبكات سريعة وخفيفة وقابلة للتوسع، أُنشئت للمساعدة في تطوير تطبيقات مركزة على الشبكات مثل: ماسحات IP، وأدوات طرق المنافذ (Port Knockers)، والعملاء، والخوادم، وغيرها. في حالتها الحالية، تستطيع مكتبة الرائد مسح IP وعمل طرق منافذ بشكل متزامن وغير متزامن للحصول على معلومات حول الجهاز الموجود في تلك النقطة الطرفية مثل: معرفة ما إذا كان IP متصلاً بالإنترنت، وعنوان MAC الفعلي، وغيرها. المكتبة موجهة بالكامل للكائنات ومبنية على الأحداث، مما يعني أن بيانات المسح محفوظة ضمن كائنات "مسح" مصممة خصيصاً للتعامل مع جميع البيانات بدءاً من النتائج وصولاً إلى الاستثناءات.

المتطلبات

  • .NET Framework 4.6.1

الميزات

الطريقةالوصفالاستخدام
Scanمسح IP واحد للحصول على معلوماتScan("192.168.1.1");
ScanRangeمسح نطاق من عناوين IP للحصول على معلوماتScanRange("192.168.1.1", "192.168.1.255")
ScanListمسح قائمة عناوين IP للحصول على معلوماتScanList("192.168.1.1, 192.168.1.2, 192.168.1.3")
PortKnockإرسال طلب ping لكل منفذ في IP واحدPortKnock("192.168.1.1");
PortKnockRangeإرسال طلب ping لكل منفذ في نطاق من عناوين IPPortKnockRange("192.168.1.1", "192.168.1.255");
PortKnockListإرسال طلب ping لكل منفذ باستخدام قائمة عناوين IPPortKnockList("192.198.1.1, 192.168.1.2, 192.168.1.3");
IsHostAliveإرسال ping إلى مضيف N مرة لمدة X مللي ثانيةIsHostAlive("192.168.1.1", 5, 1000);
GetAveragePingResponseالحصول على متوسط زمن الاستجابة للـ ping لمضيفGetAveragePingResponse("192.168.1.1", 5, 1000);
IsPortOpenإرسال ping إلى منافذ فردية عبر TCP و UDPIsPortOpen("192.168.1.1", 45000, new TimeSpan(1000), false);

أمثلة

مسح IP

يعد مسح الشبكة مهمة شائعة في هذا العصر الرقمي، ولذا فقد أخذت على عاتقي جعل هذا الأمر بسيطاً قدر الإمكان لأي مبرمج مستقبلي قد يرغب في فعل شيء كهذا بطريقة سهلة. مكتبة الرائد موجهة بالكامل للكائنات، مما يجعلها مثالية لمواقف التوصيل والتشغيل؛ الكائن الخاص بمسح IP يسمى IPScanObject ويحتوي في الواقع على عدد غير قليل من الخصائص:

  • Address (String)
  • IP (IPAddress)
  • Ping (Long)
  • Hostname (String)
  • MAC (String)
  • isOnline (Bool)
  • Errors (Exception)

مع وضع هذا الكائن في الاعتبار، دعنا نحاول إنشاء كائن جديد وإجراء مسح باستخدامه. هناك طرق متعددة للقيام بذلك، ولكن أسهل طريقة للبدء هي أولاً إنشاء كائن Scanner جديد حتى نتمكن من الوصول إلى طرق المسح الخاصة بنا. بعد ذلك، قم بإنشاء IPScanObject ثم قم بتعيينه إلى طريقة Scan مع عنوان IP الذي ترغب في تعداد معلوماته؛ على سبيل المثال:

متزامن
using System;
using Forerunner; // Remember to import our library.

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Our IP we would like to scan.
            string ip = "192.168.1.1";

            // Create a new scanner object.
            Scanner s = new Scanner();

            // Create a new scan object and perform a scan.
            IPScanObject result = s.Scan(ip);

            // Output that we have finished the scan.
            if (result.Errors != null)
                Console.WriteLine("[x] An error occurred during the scan.");
            else
                Console.WriteLine("[+] " + ip + " has been successfully scanned!")

            // Allow the user to exit at any time.
            Console.Read();
        }
    }
}

طريقة أخرى، وهي طريقتي المفضلة في التشغيل، هي إنشاء كائن Scanner والاشتراك في معالجات الأحداث مثل ScanAsyncProgressChanged أو ScanAsyncComplete، وبهذه الطريقة يكون لدي التحكم الكامل في طرق non المتزامنة الخاصة بي؛ يمكنني التحكم في كيفية تأثير حالات التقدم في تطبيقاتي وهكذا؛ على سبيل المثال:

غير متزامن
using System;
using System.Threading.Tasks;
using Forerunner; // Remember to import our library.

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Our IP we would like to scan.
            string ip = "192.168.1.1";

            // Setup our scanner object.
            Scanner s = new Scanner();
            s.ScanAsyncProgressChanged += new ScanAsyncProgressChangedHandler(ScanAsyncProgressChanged);
            s.ScanAsyncComplete += new ScanAsyncCompleteHandler(ScanAsyncComplete);

            // Start a new scan task with our ip.
            TaskFactory task = new TaskFactory();
            task.StartNew(() => s.ScanAsync(ip));

            // Allow the user to exit at any time.
            Console.Read();
        }

        static void ScanAsyncProgressChanged(object sender, ScanAsyncProgressChangedEventArgs e)
        {
            // Do something here with e.Progress, or you could leave this event
            // unsubscribed so you wouldn't have to do anything.
        }

        static void ScanAsyncComplete(object sender, ScanAsyncCompleteEventArgs e)
        {
           // Do something with the IPScanObject aka e.Result.
            if (e.Result.Errors != null)
                Console.WriteLine("[x] An error occurred during the scan.");
            else
                Console.WriteLine("[+] " + e.Result.IP + " has been successfully scanned!")
        }
    }
}

طرق المنافذ (Port Knocking)

أعرف ما تفكر فيه. طرق المنافذ؟ نعم، ولا. لا يعني المصطلح طرق المنافذ بالمعنى التقليدي للاتصال من خلال مجموعة محددة مسبقاً من المنافذ، بل يعني فقط التحقق مما إذا كانت أي منافذ مفتوحة بالفعل. إنه حرفياً "طرق" على منفذ بكل معنى الكلمة عن طريق محاولة الاتصال بكل منفذ وإرسال البيانات. كما هو الحال مع مسح IP، يستخدم طرق المنافذ كائنًا مخصصًا يسمى "Port Knock Scan Object" أو PKScanObject باختصار. يحتوي PKScanObject في الواقع على قائمة من PKServiceObject والتي تحمل بدورها بيانات المنفذ الخاصة بنا؛ يحتوي كائن الخدمة على الخصائص التالية:

  • IP (String)
  • Port (Int)
  • Protocol (PortType)
  • Status (Bool)

طرق المنافذ مشابه لمسح IP. أولاً، قم بإنشاء كائن Scanner. بعد ذلك، قم بإنشاء PKScanObject جديد وقم بتعيينه إلى طريقة PortKnock مع عنوان IP الذي تختاره، ثم اعرض نتائجك؛ على سبيل المثال:

متزامن
using System;
using Forerunner; // Remember to import our library.

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Our IP we would like to scan.
            string ip = "192.168.1.1";

            // Create a new scanner object.
            Scanner s = new Scanner();

            // Create a new scan object and perform a scan.
            PKScanObject result = s.PortKnock(ip);

            // Output that we have finished the scan.
            if (result.Errors != null)
                Console.WriteLine("[x] An error occurred during the scan.");
            else
                Console.WriteLine("[+] " + ip + " has been successfully scanned!")

           // Display our results.
           foreach (PKServiceObject port in result.Services)
           {
                Console.WriteLine("[+] IP: " + port.IP + " | " +
                                  "Port: " + port.Port.ToString() + " | " +
                                  "Protocol: " + port.Protocol.ToString() + " | " +
                                  "Status: " + port.Status.ToString());
           }
تنزيل الأداة