सवाल क्या यह आईपीवी 4 एड्रेस को शून्य पर सेट करने के लिए मान्य है?


मैं जावा ईई एप्लिकेशन में बदलाव पर काम कर रहा हूं जो उपयोगकर्ता के आईपी पते पर आधारित प्रमाणीकरण करेगा ServletRequest.getRemoteAddr। हम डेटाबेस में आईपी एड्रेस रेंज (FROM_IP और TO_IP) स्टोर करते हैं और सिस्टम केवल तभी प्रमाणित होगा जब उपयोगकर्ता का आईपी पता किसी श्रेणी में पड़ता है।

अब, परीक्षकों ने इंगित किया है कि FROM_IP और TO_IP मानों (किसी भी स्थान पर) में अंक 0 (शून्य) की अनुमति नहीं दी जानी चाहिए। ध्यान दें कि यह एक इंटरनेट का सामना करने वाला एप्लीकेशन है, और इसलिए हमें केवल सार्वजनिक आईपी पते मिलेंगे।

परीक्षकों को उस सत्यापन का सुझाव देने में सही है? हमारे पास श्रेणी मूल्य में शून्य क्यों नहीं हो सकता है जैसे कि 167.23.0.1 - 167.23.255.255 में?


36
2017-07-15 23:00


मूल


और यहां के लिए अनिवार्य लिंक है सबनेटिंग कैसे काम करता है? सवाल। - kce
मुझे यह आश्चर्य की बात है कि आपके परीक्षक इसे लाते हैं, जब एक आईपीवी 6 पते में दर्जन 0 हो सकते हैं। अनुलेख यदि आपको बहुत देर हो चुकी है तो आपको वास्तव में अपने आईपी एड्रेस फ़ील्ड को आईपीवी 6 पते फिट करना चाहिए। आप भविष्य में खुद को सिरदर्द बचाएंगे। - Mark Henderson♦
127.0.0.1 में दो शून्य हैं? - John Smith
वैसे, मेरा अपना आईपी पता दिख रहा है whatismyipaddress.com इसमें 0 है (67.xx.0.xx) - Ritesh
यहां भी इसी तरह का सवाल है: क्या X.Y.Z.0 एक वैध आईपी पता है? - splattne


जवाब:


नहीं, वे पूरी तरह से गलत हैं।

वास्तव में, यह एक वैध आईपी पता है: 192.168.24.0

जैसा है 167.23.0.1

बिंदीदार खंडों में आईपी पते का पृथक्करण प्रदर्शन के लिए पूरी तरह मानव सुविधा है। याद रखना बहुत आसान है 192.168.1.42 से 3232235818

कंप्यूटर के लिए क्या मायने रखता है अलगाव (नेटमास्क)। पते के होस्ट अनुभाग के साथ पूरी तरह से 0 या 1 पर होस्ट होस्ट होना मान्य नहीं है।

तो, 1 9 2.168.24.0 जब तक नेटमास्क ऐसा होता है कि मेजबान भाग में कुछ बिट सेट हो जाते हैं। निम्नलिखित गणना देखें:


michael@challenger:~$ ipcalc 192.168.24.0/16
Address:   192.168.24.0         11000000.10101000. 00011000.00000000
Netmask:   255.255.0.0 = 16     11111111.11111111. 00000000.00000000
Wildcard:  0.0.255.255          00000000.00000000. 11111111.11111111
=>
Network:   192.168.0.0/16       11000000.10101000. 00000000.00000000
HostMin:   192.168.0.1          11000000.10101000. 00000000.00000001
HostMax:   192.168.255.254      11000000.10101000. 11111111.11111110
Broadcast: 192.168.255.255      11000000.10101000. 11111111.11111111
Hosts/Net: 65534                 Class C, Private Internet

इस मामले में, पता भाग (दाएं तरफ) में 2 बिट सेट हैं। यह 1 9 2.168.0.0/16 सबनेट में एक वैध होस्ट पता है।


michael@challenger:~$ ipcalc 192.168.24.255/16
Address:   192.168.24.255       11000000.10101000. 00011000.11111111
Netmask:   255.255.0.0 = 16     11111111.11111111. 00000000.00000000
Wildcard:  0.0.255.255          00000000.00000000. 11111111.11111111
=>
Network:   192.168.0.0/16       11000000.10101000. 00000000.00000000
HostMin:   192.168.0.1          11000000.10101000. 00000000.00000001
HostMax:   192.168.255.254      11000000.10101000. 11111111.11111110
Broadcast: 192.168.255.255      11000000.10101000. 11111111.11111111
Hosts/Net: 65534                 Class C, Private Internet

इस मामले में, पता भाग में 10 बिट सेट हैं और 6 बिट्स अनसेट हैं। यह एक ही सबनेट में एक और वैध होस्ट पता है।


michael@challenger:~$ ipcalc 192.168.24.0/24
Address:   192.168.24.0         11000000.10101000.00011000. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.24.0/24      11000000.10101000.00011000. 00000000
HostMin:   192.168.24.1         11000000.10101000.00011000. 00000001
HostMax:   192.168.24.254       11000000.10101000.00011000. 11111110
Broadcast: 192.168.24.255       11000000.10101000.00011000. 11111111
Hosts/Net: 254                   Class C, Private Internet

इस मामले में, पता भाग में शून्य बिट सेट हैं। यह 1 9 2.168.24.0/24 नेटवर्क में मान्य होस्ट पता नहीं है।


70
2017-07-15 23:19



मैं एक अतिरिक्त बिंदु जोड़ने के लिए इस उत्तर पर कूदूंगा, जो सही है: आईपी पते के लिए "बिंदीदार क्वाड" प्रारूप, जबकि कैननिकल, एकमात्र प्रतिनिधित्व प्रारूप नहीं है। आदेश आज़माएं ping 2130706432, या ping 017700000001 (हाँ, विंडोज़ पर भी)। आप परिणामों से खुद को आश्चर्यचकित कर सकते हैं। - BMDan
1076000524 :) - jweyrich
जबकि यहां कहा गया है कि वास्तव में सच है, दुर्भाग्यवश यह भी मामला है कि उपयोगकर्ता इंटरफ़ेस की एक बड़ी संख्या है जो लगता है कि उपसर्ग लंबाई के बावजूद पिछला शून्य (या 255) खराब है। - Theobroma Cacao
192.168.0.257 गलत है, लेकिन 192.168.257 का एक सही प्रतिनिधित्व है 192.168.1.1 (जैसा है 192.11010305)। देख inet_aton(3)। - BMDan
@ रैफेल: सबनेट शून्य वास्तव में क्लासफुल रूटिंग दिनों से एक होल्डओवर था। जब आप कहते थे, कक्षा बी नेटवर्क (12 9.9 7.0.0/16) शून्य सबनेट बिट्स 17 → एक्स के साथ शून्य पर सेट होगा (जहां एक्स सबनेट की लंबाई है)। तो नेटवर्क 12 9.9 7.0.0/24 शून्य सबनेट होगा और शुरुआती दिनों में अस्वीकृत होगा। आजकल (शुक्र है) हम सीआईडीआर का उपयोग करते हैं और इसके बारे में चिंता न करें। - MikeyB


जब तक कि मैं गलतफहमी नहीं कर रहा हूं, आपके परीक्षक गलत हैं। मान्य आईपी पते निश्चित रूप से उनमें से 0 हो सकता है।


16
2017-07-15 23:20





सामान्य रूप से: नहीं, इससे कोई फर्क नहीं पड़ता कि पते में 0 है या नहीं।

हालांकि, आपके परीक्षक क्या कह रहे हैं में सत्य का एक अनाज है। कुछ मामलों में पुराने या टूटे हुए नेटवर्क उपकरण अंतिम ऑक्टेट्स में 0 के साथ पते पर सही ढंग से काम नहीं करेंगे। यह पुराने वर्गीकृत रूटिंग नियमों के कारण है। क्लासफुल रूटिंग में, आप नेटमास्क को पते के पहले ऑक्टेट से बता सकते हैं। यदि उपकरण अभी भी क्लासफुल रूटिंग नियमों का पालन करता है तो यह गलत तरीके से 200.100.1.0/16 जैसे पते को संभालने की संभावना है।


12
2017-07-16 00:22





आइए मान लें कि आपको एक श्रेणी में 510 आईपी एड्रेस की आवश्यकता है और आपका नेटवर्क एड्रेस 1 9 2.1.1.0 है, आपके पास एक / 23 सबनेट होगा, जिसमें से आपके होस्ट आईपी का एक .0 आईपी पता है, तो आपका टेस्टर्स गलत है अगर .0 पता एक मेजबान पता है। यदि आपके पास एक / 24 नेटवर्क है तो यह कहना सही होगा कि यह गलत था।


3
2017-07-16 00:00





एक बहुत ही सरल उत्तर प्रदान करने के लिए: किसी आईपी पते में एक या अधिक शून्य होस्ट होस्ट पते के लिए पूरी तरह से मान्य हैं जब तक कि वे पते नेटवर्क या प्रसारण पते न हों।

नेटवर्क और प्रसारण पते मान्य आईपी पते हैं, वे मेजबानों द्वारा उपयोग योग्य नहीं हैं।


2
2017-07-16 02:11



X.Y.0.255 के प्रसारण पते के बारे में क्या? - Random832
मेरा जवाब संशोधित किया। धन्यवाद कि पकड़ने के लिए धन्यवाद। - joeqwerty
आप मेजबान के लिए नेटवर्क पता का उपयोग कर सकते हैं, और ऐसा करने के बाद "लीटनेस" का एक आम परीक्षण था। शुक्र है, हालांकि, यह प्रचलित रूप से अच्छी तरह से गिर गया है। इसी तरह से, आरएफसी 3021 दोनों "प्रसारण" के उपयोग की अनुमति देता है तथा "नेटवर्क" पते एक / 31 में हैं, हालांकि शर्तें तर्कसंगत रूप से कुछ हद तक अनुपयोगी हैं जब आप केवल दो मेजबानों से निपटने के लिए काम कर रहे हैं। - BMDan