IP पते का अजीब डॉटलेस दशमलव अंकन… यह कैसे काम करता है?


89

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

7146876447148052097151286861515964400 (एक HTTP पर चिपकाएँ: // सामने)

यह कैसे काम करता है? दशमलव के सभी -> IPv4 कन्वर्टर्स जो मैंने इंटरनेट पर पाए हैं, सभी इसे एक अमान्य इनपुट मानते हैं। अगर मैं IPv4 पता लेता हूं कि यह वास्तव में लोड होता है, और इसे एक ही गणना करता है, तो इसे डॉटलेस दशमलव में बदलने के लिए, मुझे एक बहुत छोटी संख्या मिलती है।

मैंने पढ़ा है कि पिंग dwords को स्वीकार कर सकता है और कुछ रूपांतरण कर सकता है, लेकिन यह इस नंबर को IP पते में परिवर्तित नहीं कर सकता है। IPv6 इस प्रश्न से बाहर है क्योंकि इस होस्ट में IPv6 कनेक्टिविटी नहीं है।

यह कैसा पागलपन है? यह खुद को और मेरे सहकर्मियों को स्टम्प्ड कर रहा है।

संपादित करें: यह अब ऑनलाइन है।



2
क्या आपको वाकई यकीन है कि यह IPv6 एड्रेस नहीं है? क्योंकि यह संख्या आधार 65536 में 8 अंकों तक टूट जाती है; IPv6 पतों के आधार 65536 में 8 अंक होते हैं। हेक्स में दर्शाया गया है जैसा कि IPv6 के लिए सामान्य है, यह 89: a4d2: 471b: 45ef: 77ed: c70f: da35: 93f0 है।
क्रिश्चियन

2
@Christian संख्या के स्रोत के लिए उनका स्पष्टीकरण वास्तविक संख्या के साथ दिखाया गया है, जिसमें 36 अंक हैं (प्रत्येक आईडी 9 अंक या तो 714xxxxxx या 715xxxxxx है)। कंप्यूटर में IPv6 भी नहीं है, और IPv4 पते के रूप में लिया गया नंबर वास्तव में एक वेब पेज लौटाता है। ~ 5E33 से ~ 3E38 तक की संख्याएँ 65536 के आधार में 8 अंक हैं, मुझे लगता है कि यह सिर्फ एक संयोग है कि उनकी सीमा उस श्रेणी में आती है (साथ ही, कोई भी छोटी संख्या भी एक मान्य IPv6 पता होगी)
टिम एस।

1
@ बीइक्स ठीक है, यह पहले से ही काम नहीं किया था जब मैंने इसे कल की कोशिश की थी, लेकिन यह देखते हुए कि यह एक असुरक्षित रूटर था शायद इतना आश्चर्य की बात नहीं है। तो क्या आप कह रहे हैं कि आपने मूल रूप से अपने एड्रेस बार में एक रैंडम नंबर डाला है? या आपके पास किस तरह की स्प्रेडशीट थी जिसमें असुरक्षित रूटर्स के अजीब कोडित आईपी पते शामिल हैं? ;)
क्रिश्चियन

1
@ क्रिसियन, एलओएल। वे अनुपालन प्रणाली में कुछ अद्वितीय संदेश पहचानकर्ता थे। पूरी तरह से अजीब मौका है कि मैंने उन्हें पता बार में चिपकाया, और यह काम किया। मुझे यकीन है कि मेरे जीवन में मेरे साथ फिर कभी ऐसा नहीं होगा :)
बीक

जवाबों:


93

यह काफी दिलचस्प सवाल है, और मुझे यह पता लगाने में थोड़ा समय लगा। संक्षिप्त उत्तर अंतिम 32-बिट्स संख्या 3660944368 है (दशमलव में, जिसे पाया जा सकता है 714687644714805209715128610715964400 mod 2^32)

यह IPv4 एड्रेस 218.53.147.240 का दशमलव मान है , जिसे 3660944368 = 218*(256^3)+53*(256^2)+147*(256)+240दशमलव (बेस -10) में एक संख्या लिखने के लिए इसे आधार-256 के अनुरूप से परिवर्तित करके पाया जा सकता है । उदाहरण के लिए 234 = 2*10^2+ 3*10 + 4

जैसा कि @chritohnide बताते हैं, बिंदीदार IPv4 पतों के प्रत्येक खंड को एक ओकटेट कहा जाता है क्योंकि यह 8 बाइनरी अंकों का प्रतिनिधित्व करता है। यह भी ध्यान देने योग्य है कि IPv4 पतों (जैसे बिंदीदार दशमलव, या शुद्ध दशमलव) के विभिन्न प्रारूप केवल लाभ के लिए 32-बिट बाइनरी संख्या का प्रतिनिधित्व करने के विभिन्न तरीके हैं।

चूंकि IPv4 पते 32-बिट नंबर हैं, इसलिए पते को हल करने के लिए केवल अंतिम 32-बिट नंबर का उपयोग किया जाता है। यह सच क्यों है स्पष्ट नहीं है। जैसा कि अन्य ने बताया है, पूर्ण संख्या दशमलव में IPv6 पते के समान ही दिखती है, लेकिन एक वैध पता नहीं है।

को देखते हुए टेरीडो विनिर्देश (देखें 4. टेरीडो पतों ), ग्राहक आईपीवी 4 IPv6 पता के अंतिम 32-बिट पर है, लेकिन संख्या टेरीडो विनिर्देश से मेल नहीं खाती उपसर्ग (यह भी देखें विकिपीडिया )।


12
अच्छा जवाब। यह उल्लेख करना भी उपयोगी हो सकता है कि एक बिंदीदार IPv4 पते के प्रत्येक खंड को एक ओकटेट कहा जाता है क्योंकि यह 8 बिट बाइनरी नंबर (4 ऑक्टेट = 4 x 8 बिट्स = आईपीवी 4 पते के 32 बिट्स) का दशमलव प्रतिनिधित्व है और वह दशमलव है संस्करण वास्तव में केवल हमारे लाभ के लिए है।
चिरटोनाइड

4
आपको यकीन है कि यह IPv6 दशमलव संकेतन नहीं है? यह सफलतापूर्वक करने के लिए धर्मान्तरित0089:a4d2:471b:45ef:77ed:c70f:da35:93f0
Izkata

5
@ इज़काटा: अनिश्चित रूप से, क्योंकि यह पता IPv6 पता स्थान के एक असंबद्ध और आरक्षित हिस्से में होगा।
हेनिंग मैखोलम

3
संख्या (एएससीआईआई में) संभवत: सी-स्टडीलिब स्ट्रिंग में से एक के माध्यम से 32-बिट आईपीवी 4 पते में परिवर्तित करने के लिए इंट फ़ंक्शन के लिए चलाया जाएगा। सी stdlib के अधिकांश कार्यान्वयन में वे रूपांतरण स्वचालित रूप से एक मॉडुलो 2 ^ <वांछित पूर्णांक आकार> करेंगे। उस मामले में परिणाम वास्तव में मनाया व्यवहार के लिए है।
टन

3
यह ध्यान देने योग्य है कि यह संभवतः फ़ायरफ़ॉक्स के URL पार्सर का एक क्विक है। ऐसा लगता है कि यह URL की बजाय एक संख्या है और इसे 32-बिट अनपोटेड आईपी एड्रेस के रूप में पार्स करने का प्रयास किया जाता है (परिणामस्वरूप पार्स किया गया पूर्णांक modulo 32-बिट समाप्त होता है और यह वास्तव में इनपुट पर जाँच करने में कोई त्रुटि नहीं करता है )। उदाहरण के लिए, Chrome इस व्यवहार को नहीं दिखाता है। यह वास्तव में फ़ायरफ़ॉक्स में एक तुच्छ बग के रूप में रिपोर्ट करने लायक हो सकता है।
जेसन सी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.