Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

ipaddress - Python में IPv4/IPv6 मैनिपुलेशन लाइब्रेरी

इंटरनेट प्रोटोकॉल वर्तमान में संस्करण 4 से संस्करण 6 में जाने की प्रक्रिया में है। यह आवश्यक है क्योंकि संस्करण 4 इंटरनेट से सीधे कनेक्शन वाले उपकरणों की बढ़ती संख्या को संभालने के लिए पर्याप्त पते प्रदान नहीं करता है।

एक IPv4 पता 32 बिट्स से बना होता है, जिसे "ऑक्टेट्स" नामक चार आठ बिट समूहों में दर्शाया जाता है। यह एक "बिंदीदार दशमलव" प्रारूप है जहां प्रत्येक आठ-बिट ऑक्टेट का दशमलव मान 0 से 255 तक हो सकता है।

उदाहरण के लिए :192.168.1.1

CIDR संकेतन के साथ IPv4 पता:192.168.1.1/24 जहां 24 का अर्थ है पहले तीन ऑक्टेट नेटवर्क की पहचान करते हैं और अंतिम ऑक्टेट नोड की पहचान करते हैं।

एक IPv6 पता 128 बिट लंबा होता है। यह हेक्साडेसिमल नोटेशन का उपयोग करता है। IPv6 पते में प्रत्येक स्थिति 0 से f तक के मान के साथ चार बिट्स का प्रतिनिधित्व करती है। 128 बिट्स को 16 बिट्स के 8 समूहों में विभाजित किया गया है, जिनमें से प्रत्येक को कोलन द्वारा अलग किया गया है।

उदाहरण: 2001:db8:abcd:100::1/64

सभी IPv6 पते CIDR नोटेशन का उपयोग यह निर्धारित करने के लिए करते हैं कि नेटवर्क पहचान के लिए कितने प्रमुख बिट्स का उपयोग किया जाता है और बाकी होस्ट/इंटरफ़ेस पहचान के लिए उपयोग किया जाता है।

पायथन के मानक पुस्तकालय में ipaddress मॉड्यूल है जो IPv4 और IPv6 पते और नेटवर्क पर बनाने, हेरफेर करने और संचालित करने की क्षमता प्रदान करता है।

मॉड्यूल आसानी से आईपी पते, नेटवर्क और इंटरफेस बनाने के लिए निम्नलिखित कारखाने के कार्य प्रदान करता है:

ip_address()

तर्क के रूप में पारित IP पते के आधार पर IPv4Address या IPv6Address ऑब्जेक्ट लौटाएं। IPv4 या IPv6 पतों की आपूर्ति की जा सकती है।

>>> import ipaddress
>>> ipaddress.ip_address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.ip_address('2001:ab7::')
IPv6Address('2001:ab7::')

ip_network()

तर्क के रूप में पारित IP पते के आधार पर IPv4Network या IPv6Network ऑब्जेक्ट लौटाएं।

>>> ipaddress.ip_network('192.168.100.0/24')
IPv4Network('192.168.100.0/24')
>>> ipaddress.ip_network('2001:db8:abcd:100::/64')
IPv6Network('2001:db8:abcd:100::/64')

ip_interface()

तर्क के रूप में पारित IP पते के आधार पर IPv4Interface या IPv6Interface ऑब्जेक्ट लौटाएं।

>>> ipaddress.ip_interface('192.168.100.10/24')
IPv4Interface('192.168.100.10/24')
>>> ipaddress.ip_interface('2001:db8:abcd:100::1/64')
IPv6Interface('2001:db8:abcd:100::1/64')

ipaddress मॉड्यूल निम्नलिखित वर्गों को परिभाषित करता है:

IPv4पता (पता)

यह कंस्ट्रक्टर IPv4 एड्रेस ऑब्जेक्ट देता है।

मान्य IPv4 पते की पहचान निम्नलिखित द्वारा की जाती है:

दशमलव-बिंदु संकेतन में एक स्ट्रिंग, जिसमें 0–255 समावेशी श्रेणी में चार दशमलव पूर्णांक होते हैं, जो बिंदुओं से अलग होते हैं (उदा. 192.168.0.1)।

एक पूर्णांक जिसका बाइनरी समतुल्य 32 बिट है।

लंबाई 4 (सबसे महत्वपूर्ण ऑक्टेट पहले) की बाइट्स ऑब्जेक्ट में पैक किया गया एक पूर्णांक।

>>> ipaddress.IPv4Address('192.168.0.1')
IPv4Address('192.168.0.1')
>>> ipaddress.IPv4Address(3162581505)
IPv4Address('188.129.42.1')
>>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01')
IPv4Address('192.168.0.1')

IPv6Address()

IPv6 पता बनाएं।

वैध IPv6 पता निम्नानुसार गठित किया गया है:

एक स्ट्रिंग जिसमें चार हेक्साडेसिमल अंकों के आठ समूह होते हैं, प्रत्येक समूह 16 बिट्स का प्रतिनिधित्व करता है। समूहों को कोलन द्वारा अलग किया जाता है।

एक पूर्णांक जो 128 बिट में फ़िट हो जाता है।

16, बड़े-एंडियन लंबाई वाले बाइट ऑब्जेक्ट में पैक किया गया एक पूर्णांक।

>>> ipaddress.IPv6Address('2001:db8::1000')
IPv6Address('2001:db8::1000')
>>> ipaddress.IPv6Address("::abc:7:def")
IPv6Address('::abc:7:def')

संस्करण

उपयुक्त संस्करण संख्या देता है

>>> add = ipaddress.IPv4Address('192.168.0.1')
>>> add.version
4
>>> ip = ipaddress.IPv6Address('2001:db8::1000')
>>> ip.version
6

  1. पायथन सीबॉर्न लाइब्रेरी में डेटा की कल्पना करने के लिए फ़ेसटग्रिड का उपयोग कैसे किया जा सकता है?

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

  1. पाइथन में सीबोर्न लाइब्रेरी में बार प्लॉट का उपयोग कैसे किया जा सकता है?

    सीबॉर्न एक पुस्तकालय है जो डेटा की कल्पना करने में मदद करता है। यह अनुकूलित थीम और उच्च स्तरीय इंटरफ़ेस के साथ आता है। पिछले प्लॉट्स में, हमने पूरे डेटासेट को ग्राफ पर प्लॉट किया था। बार प्लॉट की मदद से हम डेटा के वितरण की केंद्रीय प्रवृत्ति को समझ सकते हैं। बारप्लॉट फ़ंक्शन एक श्रेणीगत चर और एक स

  1. स्किकिट-लर्न में लर्निंग मॉडल बिल्डिंग:एक पायथन मशीन लर्निंग लाइब्रेरी

    इस लेख में, हम स्किकिट-लर्न में लर्निंग मॉडल बिल्डिंग के बारे में जानेंगे:एक पायथन मशीन लर्निंग लाइब्रेरी। यह एक फ्री मशीन लर्निंग लाइब्रेरी है। यह रैंडम फ़ॉरेस्ट, वेक्टर मशीन और k-निकटतम पड़ोसियों जैसे विभिन्न एल्गोरिथम का समर्थन करता है, जिसमें numpy और scipy के साथ प्रत्यक्ष कार्यान्वयन होता है।