IP पते को पिंग करना विभिन्न IP के साथ प्रतिक्रिया करता है


21

जब मैं आईपी पते को पिंग करने की कोशिश करता 10.10.208.57हूं तो मेरे पास कोई प्रतिक्रिया नहीं होती है क्योंकि उस आईपी पते के साथ नेटवर्क में कुछ भी मौजूद नहीं है।

हालाँकि अगर मैं दूसरे आईपी पते के बजाय 10.10.208.0 पिंग करने की कोशिश 57करता हूँ

root@everest:/root# ping 10.10.208.057
PING 10.10.208.057 (10.10.208.47) 56(84) bytes of data.
64 bytes from 10.10.208.47: icmp_seq=1 ttl=253 time=0.732 ms
64 bytes from 10.10.208.47: icmp_seq=2 ttl=253 time=0.695 ms
64 bytes from 10.10.208.47: icmp_seq=3 ttl=253 time=0.659 ms
64 bytes from 10.10.208.47: icmp_seq=4 ttl=253 time=0.705 ms

यह देखते हुए कि 10.10.208.47एक Lexmark E120n प्रिंटर है इस अजीब समस्या का मूल क्या हो सकता है?


3
टक्कर, इस सूत्र में उत्तर देखें: superuser.com/questions/486788/…
मिशाल सोकोलोव्स्की

जवाबों:


43

वह व्यवहार वास्तव में पिंग की एक सामान्य विशेषता के कारण है और इसका आपके वास्तविक हार्डवेयर से कोई संबंध नहीं है।

वास्तव में, एक अग्रणी शून्य के साथ आईपी पते (या इसका हिस्सा) को उपसर्ग करने से संख्या को अष्टक के रूप में व्याख्या करने का कारण होगा ।

तो आधार 8 में 057इसका मतलब 57है जो 47 है। इस प्रकार पिंग आईसीएमपी क्वेरी को पते पर स्थित मशीन को भेज देगा 10.10.208.47और इसलिए इसका जवाब मिलेगा।

ध्यान दें कि आप केवल 0 के बजाय 0x उपसर्ग का उपयोग करके, हेक्साडेसिमल में पिंग एड्रेस भी कर सकते हैं।

संपादित करें: जैसा कि कई टिप्पणियां बताती हैं, यह सुविधा वास्तव में विशिष्ट नहीं है pingऔर आईपी पते में हेरफेर करने वाले कई सीएलआई सॉफ्टवेयरों में पाया जा सकता है।


वाह! धन्यवाद! मेरा दिल मिनटों के एक झुंड के लिए रुका हुआ था
PsyStyle

4
सिर्फ पिंग नहीं। बहुत सारी चीजें ऐसा करती हैं।
जेनी डी का कहना है कि मोनिका

1
बैश सभी "पूर्णांकों" को ऐसे पूछते हैं
टिम

15

पिंग, कई अन्य यूनिक्स कार्यक्रमों की तरह, नाम रिज़ॉल्यूशन के लिए अपने यूनिक्स सिस्टम पर सी लाइब्रेरीज़ का उपयोग करें। उपयोग किए गए कार्यों में से एक है inet_aton

वह आदमी पेज inet_atonकहता है:

सभी संख्या `` भागों 'के रूप में एक में आपूर्ति की।' संकेतन दशमलव, अष्टाधारी या षोडश आधारी हो सकता है, जैसा कि सी भाषा में निर्दिष्ट है (अर्थात, एक अग्रणी 0x या 0X का अर्थ हेक्साडेसिमल है; अन्यथा, एक अग्रणी 0 का अर्थ है अष्टकोणीय; अन्यथा, संख्या दशमलव के रूप में व्याख्या की जाती है)।

इसलिए जब आप एक अग्रणी शून्य का उपयोग कर रहे हैं, तो संख्या की व्याख्या एक अष्टक के रूप में की जाती है। इस प्रकार, 57 = 047 = 0x39।


मैंने देखा कि विंडोज भी ऐसा ही व्यवहार करता है। आपके विस्तृत उत्तर के लिए धन्यवाद!
PsyStyle

@PsyStyle आपका स्वागत है! यह ऑपरेटिंग सिस्टम और प्रोग्रामिंग भाषाओं की एक विस्तृत स्पेक्ट्रम भर में संख्याओं के लिए एक मानक संकेतन है।
जेनी डी का कहना है कि मोनिका

"इसलिए जब आप एक अग्रणी शून्य का उपयोग कर रहे हैं, तो संख्या की व्याख्या एक दशमलव के रूप में की जाती है।" मुझे लगता है कि यह एक टाइपो है, आपको इसका मतलब ऑक्टल राइट माना जाता है?
क्रंचर

1
धन्यवाद @ क्रंचर। मैं अपनी कैफीन धारा में रक्त की बहुत अधिक मात्रा को दोष देता हूं।
जेनी डी का कहना है कि मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.