IPv4 पते में अग्रणी शून्य; क्या यह सम्मेलन या मानक द्वारा नहीं-नहीं है?


3

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

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

क्या सम्मेलन के कारण अग्रणी शून्य खराब हैं, या वे मानक के विपरीत जाते हैं?

यह वह निकटतम था जिसे मैं अग्रणी शून्य का उपयोग नहीं करने के लिए एक मानक के लिए पा सकता था, लेकिन यह किसी प्रकार का समाप्त हो गया मसौदा है:

IPv4 और IPv6 पतों का शाब्दिक प्रतिनिधित्व

संबंधित अनुभाग में, यह कहता है:

3 Syntax and Semantics

3.1 IPv4 Dotted Octet Format

   A 32-bit IPv4 address is divided into four octets.  Each octet is
   represented numerically in decimal, using the minimum possible number
   of digits (leading zeroes are not used, except in the case of 0
   itself).  The four encoded octets are given most-significant first,
   separated by period characters.

        IPv4address = d8 "." d8 "." d8 "." d8

        d8          = DIGIT               ; 0-9
                    / %x31-39 DIGIT       ; 10-99
                    / "1" 2DIGIT          ; 100-199
                    / "2" %x30-34 DIGIT   ; 200-249
                    / "25" %x30-35        ; 250-255

मुझे इस घटना पर चर्चा करते हुए निम्नलिखित लेख भी मिले:

पिंग और एफ़टीपी आईपी पते को ओकल के रूप में अग्रणी शून्य के साथ हल करते हैं

IP पते में अग्रणी शून्य गलत रूटिंग का परिणाम हो सकता है

क्या आईपी पते अग्रणी शून्य के साथ और बिना समान हैं?

क्या IPV4 पते के बिंदीदार दशमलव संकेतन में शून्य छोड़ने के लिए कोई दस्तावेज है?


लिंक संपादन के लिए धन्यवाद। आम तौर पर मैं शीर्षक के नीचे URL का पूरा पाठ रखना पसंद करता हूं, लेकिन मैं ऐसा नहीं कर सकता था, और फिर मेरे पास 2 से अधिक लिंक नहीं हो सकते थे, जिससे वास्तव में सवाल साफ हो गया।
YetAnotherRandomUser

अंत में, यह सभी पार्सर कार्यान्वयन के लिए नीचे आता है, इसलिए अधिकांश प्रणालियों को यह ठीक लगना चाहिए, लेकिन कुछ नहीं हो सकता है .... मानक कार्यान्वयन हमेशा ऐसे ही होते हैं।
Frank Thomas

जवाबों:


5

ऐसा कोई मानक नहीं है कि IPv4 पते की मांग एक निश्चित तरीके से की जाए। यही है, RFC एक निर्दिष्ट नहीं करता है और कई प्रारूप व्यापक उपयोग में हैं। आमतौर पर, आप चार ऑक्टेट को दशमलव संख्या के रूप में देखेंगे, लेकिन आप एकल 8-अंक हेक्साडेसिमल संख्या या यहां तक ​​कि एकल दशमलव संख्या भी देख सकते हैं। हालांकि अष्टक संख्याएं असामान्य हैं, कई कार्यान्वयन उन लोगों को भी स्वीकार करते हैं।

यही कारण है कि आम तौर पर अग्रणी शून्य से बचा जाता है; पता अस्पष्ट हो सकता है। '010.010.010.010' एक निजी श्रेणी में हो सकता है, लेकिन '8.8.8.8' पर Google का प्रसिद्ध DNS सर्वर भी हो सकता है। संख्याएँ जो एक अग्रणी शून्य से शुरू होती हैं और जिनमें अंक 8 या 9 नहीं होते हैं उन्हें अक्सर अष्टक के रूप में व्याख्या किया जाता है।


आप किस RFC की बात कर रहे हैं?
YetAnotherRandomUser

1
@allanonmage - उपयोग किए गए संदर्भ में। एक ही अधिभोग RFC होगा जो IPv4 को कवर करेगा
Ramhound

1
आरएफसी 791, सटीक होना।
Marcks Thomas

1

आदर्श रूप से यह बात नहीं होनी चाहिए, क्योंकि जब यह बाइनरी / हेक्स / जो कुछ भी टूट जाता है, तो अग्रणी शून्य को अंतिम परिणाम को प्रभावित नहीं करना चाहिए।

उदाहरण: 192.168.1.1 बाइनरी
192 = 11000000
168 = 10101000
1 = 00000001
1 = 00000001

192.168.001.001 के समान ही है
192 = 11000000
168 = 10101000
001 = 00000001
001 = 00000001

पिछला SU उत्तर देखें यहाँ


कुछ प्रणालियों पर उनकी व्याख्या अलग तरीके से की जा सकती है, इस प्रकार उन्हें टाला जाना चाहिए: superuser.com/a/857618/27205
Radu Maris

0

0.0.0.0/8 स्थानीय नेटवर्क के लिए आरक्षित है (RFC 6890 देखें या एक आसान पढ़ने के लिए https://en.wikipedia.org/wiki/IPv4#Special-use_addresses )।

इस प्रकार 0 से शुरू होने वाला कोई भी पता मान्य है लेकिन यह किसी विशेष मशीन का आईपी पता नहीं है।


0

आइए, जब हम में से कुछ इंटरनेट की दुनिया का नेतृत्व कर रहे थे और एक वास्तविक ऐतिहासिक दृष्टिकोण से इसे देखें।

ऐतिहासिक तथ्य: कई अगर शुरुआती राउटर में से अधिकांश की आवश्यकता नहीं है (फिर से: आवश्यक) आईपी पते के आदानों के लिए यह सटीक प्रारूप: xxx.xxx.xxx.xxx

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

इसलिए...

001.001.001.001 = 1.1.1.1
10.001.1.010 = 10.1.1.10  (inconsistently padding only some octets makes me sad)

अब लगभग 2020 तक जब पैडिंग का उपयोग किया जाता है तो ज्यादातर सिस्टम पुराने स्कूल 3 के बजाय प्रत्येक ऑक्टेट में 1-3 बेस 10 वर्णों को स्वीकार करते हैं? मैं एक कारण के बारे में सोच सकता हूं कि मेरा अक्सर सामना होता है:

Excel में IP पतों की क्रमबद्ध सूची।

10.1.1.1
10.100.254.50
10.16.2.3
10.3.129.44
10.3.2.50

^ एक्सेल इन पतों को कैसे क्रमबद्ध करेगा (संख्यात्मक रूप से नहीं!)

लेकिन अगर आपके पास IP की एक बड़ी सूची है और उन्हें क्रमबद्ध करना चाहते हैं: गद्दी शून्य का उपयोग करें ताकि Excel यह क्रमबद्ध सूची प्रदान करे:

010.001.001.001
010.003.002.050
010.003.129.044
010.016.002.003
010.100.254.050

अब, यदि यह सूची 300+ पते की है, तो हम बता सकते हैं, और आप उन्हें क्रम में देखना चाहते थे, पैडिंग आपका मित्र है।

इसके अलावा, अगर ये एक डेटाबेस में हैं और सूची को सॉर्ट करने के लिए एक स्ट्रिंग सॉर्ट का उपयोग किया गया है, तो पैडिंग भी आपकी मित्र है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.