इंटरनेट प्रोटोकॉल वर्तमान में संस्करण 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