Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/jasondrawdy/forerunner
टोहीनेटवर्क मैपिंगपोर्ट स्कैनिंगजानकारी एकत्र करनाउपयोगिताएँ और फ्रेमवर्क
GitHubjasondrawdy/forerunner

Forerunner

तेज़ और विस्तार योग्य network scanning library जिसमें multithreading, ping probing, और scan fetchers शामिल हैं।

रिपॉजिटरी देखें
39146 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
Forerunner — तेज़ और विस्तार योग्य network scanning library जिसमें multithreading, ping probing, और scan fetchers शामिल हैं। | Kitploit

Forerunner

फोररनर लाइब्रेरी एक तेज़, हल्की और विस्तार योग्य नेटवर्किंग लाइब्रेरी है जो मजबूत नेटवर्क-केंद्रित अनुप्रयोगों जैसे: IP स्कैनर, पोर्ट नॉकर, क्लाइंट, सर्वर आदि के विकास में सहायता के लिए बनाई गई है। अपनी वर्तमान स्थिति में, फोररनर लाइब्रेरी समकालिक (synchronously) और असमकालिक (asynchronously) दोनों तरीकों से IP पतों को स्कैन और पोर्ट नॉक करने में सक्षम है, ताकि उस एंडपॉइंट पर स्थित डिवाइस के बारे में जानकारी प्राप्त की जा सके जैसे: IP ऑनलाइन है या नहीं, भौतिक MAC पता, आदि। लाइब्रेरी पूरी तरह से ऑब्जेक्ट ओरिएंटेड और इवेंट-आधारित है, जिसका अर्थ है कि स्कैन डेटा विशेष रूप से तैयार किए गए "स्कैन" ऑब्जेक्ट्स में समाहित होता है जो परिणामों से लेकर अपवादों तक सभी डेटा को संभालने के लिए डिज़ाइन किए गए हैं।

आवश्यकताएँ

  • .NET Framework 4.6.1

विशेषताएँ

विधिविवरणउपयोग
Scanएक एकल IP की जानकारी स्कैन करेंScan("192.168.1.1");
ScanRangeIP की एक श्रेणी स्कैन करेंScanRange("192.168.1.1", "192.168.1.255")
ScanListIP की सूची स्कैन करेंScanList("192.168.1.1, 192.168.1.2, 192.168.1.3")
PortKnockएक एकल IP के हर पोर्ट को पिंग करेंPortKnock("192.168.1.1");
PortKnockRangeIP की श्रेणी के हर पोर्ट को पिंग करेंPortKnockRange("192.168.1.1", "192.168.1.255");
PortKnockListIP सूची का उपयोग करके हर पोर्ट को पिंग करेंPortKnockList("192.198.1.1, 192.168.1.2, 192.168.1.3");
IsHostAliveएक होस्ट को X मिलीसेकंड के लिए N बार पिंग करेंIsHostAlive("192.168.1.1", 5, 1000);
GetAveragePingResponseहोस्ट का औसत पिंग प्रतिक्रिया प्राप्त करेंGetAveragePingResponse("192.168.1.1", 5, 1000);
IsPortOpenTCP & UDP के माध्यम से व्यक्तिगत पोर्ट पिंग करेंIsPortOpen("192.168.1.1", 45000, new TimeSpan(1000), false);

उदाहरण

IP स्कैनिंग

इस डिजिटल युग में नेटवर्क को स्कैन करना एक सामान्य कार्य है, और इसलिए मैंने इसे किसी भी भविष्य के प्रोग्रामर के लिए जितना संभव हो सके उतना सरल बनाने की स्वतंत्रता ली है, जो शायद ऐसा करना चाहे। फोररनर लाइब्रेरी पूरी तरह से ऑब्जेक्ट ओरिएंटेड है, इस प्रकार यह प्लग एंड प्ले स्थितियों के लिए आदर्श है; IP स्कैनिंग के लिए ऑब्जेक्ट को IPScanObject कहा जाता है और इसमें वास्तव में काफी कुछ गुण (properties) होते हैं:

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

इस ऑब्जेक्ट को ध्यान में रखते हुए, आइए एक नया ऑब्जेक्ट बनाने और इसका उपयोग करके स्कैन करने का प्रयास करें। ऐसा करने के कई तरीके हैं, हालांकि, शुरू करने का सबसे सरल तरीका पहले एक नया Scanner ऑब्जेक्ट बनाना है ताकि हम अपने स्कैनिंग विधियों तक पहुँच सकें। इसके बाद, एक IPScanObject बनाएँ और इसे उस IP के साथ Scan विधि पर सेट करें जिसे आप गणना करना चाहते हैं; उदाहरण के लिए:

समकालिक (Synchronous)
root@kitploit:~
using System;
using Forerunner; // अपनी लाइब्रेरी आयात करना याद रखें।

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // हम जिस IP को स्कैन करना चाहते हैं।
            string ip = "192.168.1.1";

            // एक नया scanner ऑब्जेक्ट बनाएँ।
            Scanner s = new Scanner();

            // एक नया scan ऑब्जेक्ट बनाएँ और स्कैन करें।
            IPScanObject result = s.Scan(ip);

            // आउटपुट दें कि स्कैन पूरा हो गया है।
            if (result.Errors != null)
                Console.WriteLine("[x] स्कैन के दौरान एक त्रुटि हुई।");
            else
                Console.WriteLine("[+] " + ip + " सफलतापूर्वक स्कैन हो गया है!")

            // उपयोगकर्ता को किसी भी समय बाहर निकलने की अनुमति दें।
            Console.Read();
        }
    }
}

दूसरा तरीका, जो मेरा पसंदीदा तरीका है, एक Scanner ऑब्जेक्ट बनाना और ScanAsyncProgressChanged या ScanAsyncComplete जैसे इवेंट हैंडलर्स की सदस्यता लेना है, ताकि मुझे अपने async विधियों पर पूर्ण नियंत्रण मिल सके; मैं नियंत्रित कर सकता हूँ कि उनकी प्रगति स्थितियाँ मेरे एप्लिकेशन को कैसे प्रभावित करती हैं, इत्यादि; उदाहरण के लिए:

असमकालिक (Asynchronous)
root@kitploit:~
using System;
using System.Threading.Tasks;
using Forerunner; // अपनी लाइब्रेरी आयात करना याद रखें।

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // हम जिस IP को स्कैन करना चाहते हैं।
            string ip = "192.168.1.1";

            // अपना scanner ऑब्जेक्ट सेटअप करें।
            Scanner s = new Scanner();
            s.ScanAsyncProgressChanged += new ScanAsyncProgressChangedHandler(ScanAsyncProgressChanged);
            s.ScanAsyncComplete += new ScanAsyncCompleteHandler(ScanAsyncComplete);

            // अपने ip के साथ एक नया स्कैन कार्य शुरू करें।
            TaskFactory task = new TaskFactory();
            task.StartNew(() => s.ScanAsync(ip));

            // उपयोगकर्ता को किसी भी समय बाहर निकलने की अनुमति दें।
            Console.Read();
        }

        static void ScanAsyncProgressChanged(object sender, ScanAsyncProgressChangedEventArgs e)
        {
            // यहाँ e.Progress के साथ कुछ करें, या आप इस इवेंट को सब्सक्राइब नहीं छोड़ सकते
            // ताकि आपको कुछ नहीं करना पड़े।
        }

        static void ScanAsyncComplete(object sender, ScanAsyncCompleteEventArgs e)
        {
           // IPScanObject उर्फ e.Result के साथ कुछ करें।
            if (e.Result.Errors != null)
                Console.WriteLine("[x] स्कैन के दौरान एक त्रुटि हुई।");
            else
                Console.WriteLine("[+] " + e.Result.IP + " सफलतापूर्वक स्कैन हो गया है!")
        }
    }
}

पोर्ट नॉकिंग

मुझे पता है आप क्या सोच रहे हैं। पोर्ट नॉकिंग? हाँ, और नहीं। यह शब्द पारंपरिक अर्थों में पोर्ट नॉकिंग का मतलब नहीं है जहाँ पूर्वनिर्धारित पोर्ट के सेट के माध्यम से कनेक्ट किया जाता है, बल्कि यह सिर्फ जाँच करना है कि क्या कोई पोर्ट वास्तव में खुला है। यह सचमुच हर अर्थ में एक पोर्ट पर "दस्तक" देना है, प्रत्येक पोर्ट से जुड़ने और डेटा भेजने का प्रयास करके। ठीक IP स्कैनिंग की तरह, पोर्ट नॉकिंग एक कस्टम ऑब्जेक्ट का उपयोग करता है जिसे "PortKnockScanObject" या संक्षेप में PKScanObject कहा जाता है। PKScanObject में वास्तव में PKServiceObjects की एक सूची होती है जो बदले में हमारे पोर्ट डेटा को रखती है; सेवा ऑब्जेक्ट में निम्नलिखित गुण (properties) होते हैं:

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

पोर्ट नॉकिंग IP स्कैनिंग के समान तरीके से काम करता है। पहले, एक Scanner ऑब्जेक्ट बनाएँ। इसके बाद, एक नया PKScanObject बनाएँ और इसे अपनी पसंद के IP के साथ PortKnock विधि पर सेट करें, फिर अपने परिणाम प्रदर्शित करें; उदाहरण के लिए:

समकालिक (Synchronous)
root@kitploit:~
using System;
using Forerunner; // अपनी लाइब्रेरी आयात करना याद रखें।

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // हम जिस IP को स्कैन करना चाहते हैं।
            string ip = "192.168.1.1";

            // एक नया scanner ऑब्जेक्ट बनाएँ।
            Scanner s = new Scanner();

            // एक नया scan ऑब्जेक्ट बनाएँ और स्कैन करें।
            PKScanObject result = s.PortKnock(ip);

            // आउटपुट दें कि स्कैन पूरा हो गया है।
            if (result.Errors != null)
                Console.WriteLine("[x] स्कैन के दौरान एक त्रुटि हुई।");
            else
                Console.WriteLine("[+] " + ip + " सफलतापूर्वक स्कैन हो गया है!")

           // अपने परिणाम प्रदर्शित करें।
           foreach (PKServiceObject port in result.Services)
           {
                Console.WriteLine("[+] IP: " + port.IP + " | " +
                                  "Port: " + port.Port.ToString() + " | " +
                                  "Protocol: " + port.Protocol.ToString() + " | " +
                                  "Status: " + port.Status.ToString());
           }

           // उपयोगकर्ता को किसी भी समय बाहर निकलने की अनुमति दें।
           Console.Read();
        }
    }
}

अंत में, मैं आपको पोर्ट नॉकिंग का एक सरल उदाहरण दिखाऊंगा जो असमकालिक (asynchronously) तरीके से काम करता है। यह मूल रूप से पोर्ट नॉकिंग के समकालिक संस्करण के समान है, सिवाय इस तथ्य के कि आप अपने लाभ के लिए इवेंट का उपयोग कर सकते हैं। आप UIs के क्रैश होने या सिस्टम के लॉक होने की चिंता किए बिना प्रगति अपडेट प्राप्त कर सकते हैं; उदाहरण के लिए:

असमकालिक (Asynchronous)
root@kitploit:~
using System;
using System.Threading.Tasks;
using Forerunner; // अपनी लाइब्रेरी आयात करना याद रखें।

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // हम जिस IP को स्कैन करना चाहते हैं।
            string ip = "192.168.1.1";

            // अपना scanner ऑब्जेक्ट सेटअप करें।
            Scanner s = new Scanner();
            s.PortKnockAsyncProgressChanged += new PortKnockAsyncProgressChangedHandler(PortKnockAsyncProgressChanged);
            s.PortKnockAsyncComplete += new PortKnockAsyncCompleteHandler(PortKnockAsyncComplete);

            // अपने ip के साथ एक नया स्कैन कार्य शुरू करें।
            TaskFactory task = new TaskFactory();
            task.StartNew(() => s.PortKnockAsync(ip));

            // उपयोगकर्ता को किसी भी समय बाहर निकलने की अनुमति दें।
            Console.Read();
        }

        static void PortKnockAsyncProgressChanged(object sender, PortKnockAsyncProgressChangedEventArgs e)
        {
            // अपनी प्रगति प्रदर्शित करें ताकि हम ETA जान सकें।
            if (e.Progress == 99)
            {
                Console.Write(e.Progress.ToString() + "%...");
                Console.WriteLine("100%!");
            }
            else
                Console.Write(e.Progress.ToString() + "%...");
        }

        static void PortKnockAsyncComplete(object sender, PortKnockAsyncCompleteEventArgs e)
        {
            // उपयोगकर्ता को बताएं कि पोर्ट नॉक पूरा हो गया है।
            Console.WriteLine("[+] Port Knock Complete!");

            // जांचें कि क्या हमने कोई त्रुटि हल की।
            if (e.Result == null)
                Console.WriteLine("[X] पोर्ट नॉक से कोई डेटा वापस नहीं आया!");
            else
            {
                // जांचें कि क्या हमारे पास कोई पोर्ट दर्ज है।
                if (e.Result.Services.Count == 0)
                    Console.WriteLine("[!] नॉक के दौरान कोई पोर्ट खुला नहीं था।");
                else
                {
                    // अपने पोर्ट और उनके विवरण प्रदर्शित करें।
                    foreach (PKServiceObject port in e.Result.Services)
                    {
                        Console.WriteLine("[+] IP: " + port.IP + " | " +
                                          "Port: " + port.Port.ToString() + " | " +
                                          "Protocol: " + port.Protocol.ToString() + " | " +
                                          "Status: " + port.Status.ToString());
                    }
                }
            }
        }
    }
}

श्रेय

आइकन: monkik
https://www.flaticon.com/authors/monkik

लाइसेंस

कॉपीराइट © ∞ Jason Drawdy

सर्वाधिकार सुरक्षित।

MIT लाइसेंस (MIT)

इसके द्वारा, इस सॉफ्टवेयर और संबंधित दस्तावेज़ फ़ाइलों ("सॉफ्टवेयर") की एक प्रति प्राप्त करने वाले किसी भी व्यक्ति को बिना किसी प्रतिबंध के सॉफ्टवेयर में सौदा करने की अनुमति दी जाती है, जिसमें बिना किसी सीमा के सॉफ्टवेयर का उपयोग, प्रतिलिपि, संशोधन, विलय, प्रकाशन, वितरण, उप-लाइसेंस और/या बेचने के अधिकार शामिल हैं, और सॉफ्टवेयर प्रदान किए जाने वाले व्यक्तियों को ऐसा करने की अनुमति देने के लिए, निम्नलिखित शर्तों के अधीन:

उपरोक्त कॉपीराइट नोटिस और यह अनुमति नोटिस सॉफ्टवेयर की सभी प्रतियों या महत्वपूर्ण भागों में शामिल किया जाएगा।

सॉफ्टवेयर "जैसा है" प्रदान किया जाता है, बिना किसी प्रकार की वारंटी के, व्यक्त या निहित, जिसमें बिना सीमा के व्यापारिकता, किसी विशेष उद्देश्य के लिए उपयुक्तता और उल्लंघन की वारंटी शामिल नहीं है। किसी भी स्थिति में लेखक या कॉपीराइट धारक किसी भी दावे, क्षति या अन्य दायित्व के लिए उत्तरदायी नहीं होंगे, चाहे वह अनुबंध, अपकृत्य या किसी अन्य कार्रवाई में उत्पन्न हुआ हो, सॉफ्टवेयर से या सॉफ्टवेयर के उपयोग या अन्य सौदों से संबंधित हो।

इस नोटिस में निहित के अलावा, उपरोक्त कॉपीराइट धारक का नाम पूर्व लिखित प्राधिकरण के बिना इस सॉफ्टवेयर की बिक्री, उपयोग या अन्य सौदों को बढ़ावा देने के लिए विज्ञापन या अन्यथा उपयोग नहीं किया जाएगा।

टूल डाउनलोड करें