IPv4 पते 32 बिट्स चौड़े हैं, और इस प्रकार पता स्थान का आकार 2 32 , या 4,294,967,296 है। हालांकि, यह केवल एक सैद्धांतिक ऊपरी सीमा है। यह उन सभी पतों का सटीक प्रतिनिधित्व नहीं है जो वास्तव में सार्वजनिक इंटरनेट पर उपयोग किए जा सकते हैं।
इस चुनौती के प्रयोजनों के लिए, यह माना जाता है कि सभी संबोधन उत्तम दर्जे का है । वास्तविकता में, CIDR (क्लासलेस इंटर-डोमेन रूटिंग और वीएलएसएम (वेरिएबल लेंथ सबनेट मास्किंग) द्वारा पते की जगह के क्लासफुल सबडिवीजन को खत्म कर दिया गया है , लेकिन इस चुनौती के लिए इसे नजरअंदाज कर दिया जाता है।
वर्गीय पता योजना के अनुसार, 3 वर्ग हैं:
- क्लास A -
0.0.0.0
करने के लिए127.255.255.255
साथ/8
नेटमास्क लंबाई - कक्षा बी -
128.0.0.0
करने के लिए191.255.255.255
साथ/16
नेटमास्क लंबाई - कक्षा सी -
192.0.0.0
के223.255.255.255
साथ/24
नेटमास्क लंबाई
कक्षा डी (मल्टीकास्ट) और ई (आरक्षित) को भी परिभाषित किया गया है, लेकिन इनका उपयोग सार्वजनिक यूनिकस्ट पते के लिए नहीं किया जाता है।
प्रत्येक वर्ग को उस वर्ग के नेटमस्क के अनुसार नेटवर्क में विभाजित किया जाता है।
इस प्रकार 3.0.0.0
क्लास ए नेटवर्क का एक उदाहरण है। क्लास ए के लिए नेटमास्क लंबाई, 8 तो इस नेटवर्क के लिए पूर्ण पता स्थान है 3.0.0.0
करने के लिए 3.255.255.255
। हालाँकि, पहला पता ( 3.0.0.0
) नेटवर्क पते के रूप में और अंतिम पता ( 3.255.255.255
) उस नेटवर्क के लिए प्रसारण पते के रूप में आरक्षित है। इस प्रकार प्रयोग करने योग्य पतों की वास्तविक सीमा है 3.0.0.1
करने के लिए 3.255.255.254
जो 2 है 24 - 2 (= 16,777,214) कुल पतों।
इसी तरह, 200.20.30.0
क्लास सी नेटवर्क का एक उदाहरण है। कक्षा सी के लिए नेटमास्क लंबाई, 24 है, इसलिए इस नेटवर्क के लिए पूर्ण पता स्थान है 200.20.30.0
करने के लिए 200.20.30.255
। नेटवर्क और प्रसारण पतों को हटाकर प्रयोग करने योग्य पतों की वास्तविक सीमा को छोड़ दिया जाता 200.20.30.1
है, 200.20.30.254
जो कि 2 8 - 2 (= 254) कुल पते हैं।
पता सीमाओं पर आगे की सीमाएँ हैं जिनका उपयोग सार्वजनिक यूनिकस्ट के लिए किया जा सकता है। RFC 6890 के अनुसार , अस्वीकृत श्रेणियां हैं:
0.0.0.0/8
- स्थानीय नेटवर्किंग10.0.0.0/8
- निजी उपयोग100.64.0.0/10
- साझा पता स्थान127.0.0.0/8
- लूपबैक169.254.0.0/16
- लिंक लोकल172.16.0.0/12
- निजी उपयोग192.0.0.0/24
- IETF प्रोटोकॉल असाइनमेंट192.0.2.0/24
- प्रलेखन में उपयोग के लिए आरक्षित192.88.99.0/24
- 6to4 रिले एनीकट192.168.0.0/16
- निजी उपयोग198.18.0.0/15
- बेंचमार्किंग198.51.100.0/24
- प्रलेखन में उपयोग के लिए आरक्षित203.0.113.0/24
- प्रलेखन में उपयोग के लिए आरक्षित
ध्यान दें कि उपरोक्त सूची कुशलता से एक सीमा निर्दिष्ट करने के लिए वीएलएसआर नेटमास्क का उपयोग करती है। सभी लेकिन एक मामले में, दिए गए मास्क की लंबाई की विशिष्टता रेंज की शुरुआत के लिए सामान्य क्लासफुल मास्क की लंबाई से कम या उसके बराबर है। इस प्रकार इन वीएलएसआर श्रेणियों में से प्रत्येक एक या एक से अधिक क्लास नेटवर्क के बराबर है। उदाहरण के लिए 172.16.0.0/12
कक्षा बी नेटवर्क के बराबर है 172.16.0.0
करने के लिए 172.31.0.0
या पता श्रेणी 172.16.0.0
के लिए 172.31.255.255
।
इस नियम का अपवाद 100.64.0.0/10
वीएलएसआर रेंज है, जो कि 100.0.0.0
क्लास ए रेंज की तुलना में अधिक विशिष्ट है । इस प्रकार 100.0.0.0
अन्य कक्षा ए की सीमाओं को इस अपवाद के साथ संभाला जाएगा कि इसमें बीच में 4,194,304-पता छेद है। इस क्लास ए श्रेणी में मान्य पतों के लिए किया जाएगा 100.0.0.0
करने के लिए 100.63.255.255
और 100.128.0.0
करने के लिए 100.255.255.254
, 2 की कुल 24 2 - 22 - 2 (= 12,582,910) कुल पतों।
इस चुनौती का लक्ष्य सभी क्लास ए, बी और सी यूनिकैस्ट आईपीवी 4 पतों को आउटपुट करना है जो वैध रूप से एक सार्वजनिक इंटरनेट होस्ट को निर्दिष्ट किया जा सकता है (अर्थात ऊपर विस्तृत विवरण को छोड़कर)।
कोई इनपुट नहीं दिया जाएगा और उम्मीद नहीं की जानी चाहिए।
आउटपुट किसी भी रूप में आपकी भाषा के लिए सुविधाजनक हो सकता है, उदाहरण के लिए सरणी, सूची, सीमांकित स्ट्रिंग। पते मानक डॉटेड दशमलव प्रारूप में आउटपुट होना चाहिए।
आउटपुट ऑर्डर मायने नहीं रखता।
विशेष रूप से पतों की आवश्यक श्रेणी देने वाले बिल्डल अस्वीकृत हैं। इसी तरह सार्वजनिक इंटरनेट के लिए बीजीपी (या अन्य प्रोटोकॉल) राउटिंग टेबल का गतिशील रूप से निरीक्षण करने की कोई भी विधि अस्वीकृत है।
संख्यात्मक रूप से सबसे कम पता होगा 1.0.0.1
और संख्यात्मक रूप से उच्चतम होगा 223.255.255.254
।
यह चुनौती सभी IPv6 पतों को प्रिंट करने के समान है , लेकिन प्रतिबंधों के कारण गैर-तुच्छ रूप से अलग कार्यान्वयन की आवश्यकता होनी चाहिए।
@echo off
।