विषयसूची:

पायथन में नेटकैट: 6 कदम
पायथन में नेटकैट: 6 कदम

वीडियो: पायथन में नेटकैट: 6 कदम

वीडियो: पायथन में नेटकैट: 6 कदम
वीडियो: [PRACTICAL]Creating your own Netcat. Introduction To Socket Programming[HINDI] 2024, नवंबर
Anonim
पायथन में नेटकैट
पायथन में नेटकैट

नेटकैट क्या है? नेटकैट के लिए मैनुअल पेज निम्नलिखित कहता है: "एनसी (या नेटकैट) उपयोगिता का उपयोग सूरज के नीचे टीसीपी, यूडीपी, या यूनिक्स-डोमेन सॉकेट से जुड़े किसी भी चीज़ के लिए किया जाता है। यह टीसीपी कनेक्शन खोल सकता है, यूडीपी पैकेट भेज सकता है, मनमाने ढंग से सुन सकता है टीसीपी और यूडीपी पोर्ट, पोर्ट स्कैनिंग करते हैं, और आईपीवी 4 और आईपीवी 6 दोनों से निपटते हैं। टेलनेट (1) के विपरीत, एनसी स्क्रिप्ट अच्छी तरह से, और त्रुटि संदेशों को मानक आउटपुट पर भेजने के बजाय मानक त्रुटि पर अलग करती है, जैसा कि टेलनेट (1) कुछ के साथ करता है"

संक्षेप में, netcat आपको TCP या UDP प्रोटोकॉल का उपयोग करके अन्य सर्वरों से कनेक्ट करने की अनुमति देता है। टीसीपी ट्रांसमिशन कंट्रोल प्रोटोकॉल के लिए खड़ा है, और कनेक्शन उन्मुख है। यूडीपी यूनिवर्सल डेटाग्राम प्रोटोकॉल के लिए खड़ा है, और कनेक्शन रहित है। टीसीपी आमतौर पर इंटरनेट अनुप्रयोगों के लिए उपयोग किया जाता है, जबकि यूडीपी का उपयोग मीडिया स्ट्रीमिंग या वीपीएन के लिए किया जाता है।

चरण 1: हम कैसे शुरू करते हैं?

हम कैसे शुरू करते हैं?
हम कैसे शुरू करते हैं?

ऊपर बताया गया है कि कैसे netcat कहा जाता है। आप देख सकते हैं कि अंत में "गंतव्य" और "पोर्ट" नामक दो तर्क हैं। गंतव्य उस सर्वर के होस्टनाम या आईपी पते को संदर्भित करता है जिसे हम कनेक्ट करने का प्रयास कर रहे हैं, जबकि पोर्ट उस सर्वर के पोर्ट को संदर्भित करता है जिसे हम कनेक्ट करने का प्रयास कर रहे हैं।

चरण 2: चलिए शुरू करते हैं

चलो शुरू करें
चलो शुरू करें

ऊपर कुछ शुरुआती पायथन कोड है। जैसा कि आप देख सकते हैं, हम प्रोग्राम के तर्कों को उसी तरह संसाधित करना चाहते हैं जैसे वास्तविक उपयोगिता कैसे करती है। होस्टनाम निष्पादन योग्य के नाम के बाद पहला तर्क होगा, जबकि कमांड लाइन में निष्पादन योग्य के नाम के बाद पोर्ट दूसरा तर्क होगा।

चरण 3: एक कनेक्शन बनाना

एक कनेक्शन बनाना
एक कनेक्शन बनाना

आइए एक नेटकैट फ़ंक्शन बनाएं जिसका हम उपयोग कर सकते हैं। हम मूल रूप से यहां जो कर रहे हैं वह एक सॉकेट बना रहा है और दिए गए मापदंडों का उपयोग करके सर्वर से जुड़ रहा है। नेटकैट कमांड के लिए, वर्तमान पैरामीटर सर्वर का होस्टनाम और पोर्ट है जिसे हम कनेक्ट करने का प्रयास कर रहे हैं। सॉकेट में "सॉकेट. AF_INET" और "सॉकेट. SOCK_STREAM" पैरामीटर शामिल हैं क्योंकि हम इस ट्यूटोरियल के लिए एक टीसीपी कनेक्शन के लिए डिफ़ॉल्ट हैं।

चरण 4: कुछ सामग्री भेजें

कुछ सामग्री भेजें
कुछ सामग्री भेजें

हमने तीसरा पैरामीटर, "सामग्री" लेने के लिए अपने नेटकैट फ़ंक्शन का विस्तार किया। यहां बहुत सारी सामग्री है तो चलिए इसे लाइन नंबर के आधार पर तोड़ते हैं।

लाइन 14-16: हम सॉकेट पर सभी सामग्री भेजते हैं, हम थोड़ी देर प्रतीक्षा करते हैं, और फिर हम सॉकेट को किसी भी आउटगोइंग डेटा के लिए बंद कर देते हैं ताकि सॉकेट को पता चल जाए कि कोई और डेटा नहीं आ रहा है।

पंक्ति 18-26: हम सर्वर प्रतिक्रिया को संग्रहीत करने के लिए एक बफर बनाते हैं, और जब सॉकेट डेटा प्राप्त कर रहा होता है, तब तक हम परिणाम में 1024 बाइट्स डेटा जोड़ते हैं, जब तक पढ़ने के लिए डेटा होता है।

लाइन 28-29: हम चाहते हैं कि यह नेटकैट कनेक्शन एक बार का कनेक्शन हो, इसलिए हम कनेक्शन को बंद घोषित करते हैं और फिर कनेक्शन को बंद कर देते हैं।

लाइन 31: यह एक मानक HTTP अनुरोध है। यदि आप कमांड लाइन तर्क "google.com" और "80," के साथ कोड चलाते हैं तो आपको एक उचित HTTP प्रतिक्रिया दिखाई देगी

चरण 5: चलो एक खुला कनेक्शन है

चलो एक खुला कनेक्शन है
चलो एक खुला कनेक्शन है

उपरोक्त कोड (जो पिछले खंड के कोड के नीचे स्थित है) बस हमें छद्म-खुले कनेक्शन पर कई नेटकैट कमांड चलाने की अनुमति देता है। (वास्तव में, हर बार जब आप एक कमांड चलाते हैं, तो यह एक नया टीसीपी कनेक्शन खोलता और बंद करता है, इसलिए यह वास्तव में नेटकैट के व्यवहार का अनुकरण नहीं करता है, हम इसे केवल सीखने के उद्देश्यों के लिए कर रहे हैं)। आइए इस डाउन लाइन को लाइन से भी तोड़ दें:

लाइन 31: हम "इंटरैक्टिविटी" बनाए रखने के लिए अनिश्चित काल तक कमांड पढ़ना चाहते हैं

लाइन 32: यह हमारा बफर है जो हमारे अनुरोध की सामग्री को संग्रहीत करेगा

लाइन 36-45: हम बफर में तब तक पढ़ेंगे जब तक हम एक खाली लाइन नहीं पढ़ लेते

लाइन 48: हम अपने नेटकैट फ़ंक्शन को होस्टनाम, पोर्ट और नई बनाई गई सामग्री (जो ठीक से एन्कोड किया गया है) के साथ कॉल करते हैं।

लाइन ५०: यदि हमारे बफर की सामग्री में कभी भी "कनेक्शन: क्लोज" होता है (यह दर्शाता है कि हम कनेक्शन को बंद करना चाहते हैं), तो हम बस लूप से बाहर हो जाते हैं

चरण 6: निष्कर्ष

इस ट्यूटोरियल के अंत में आपके पास न्यूनतम कामकाजी नेटकैट कार्यान्वयन होना चाहिए। मैं इसे उपयोगकर्ता के लिए इस तरह की सुविधाओं को लागू करने के लिए एक अभ्यास के रूप में छोड़ दूंगा:

1. अन्य प्रोटोकॉल का समर्थन

2. हर बार कनेक्शन बंद न करने के लिए कोड को ठीक करना

3. झंडे जोड़ना जो netcat को पहले से ही व्यवहार को संशोधित करना है

सिफारिश की: