getent होस्ट्स IPv6 प्रिंट करता है, Getent ahosts IPv4 प्रिंट करता है


9

मेरे टर्मिनल से शब्दशः आउटपुट:

$ getent hosts example.org
2001:500:88:200::10 example.org
$ getent ahosts example.org
192.0.43.10     STREAM 43-10.any.icann.org
192.0.43.10     DGRAM  
192.0.43.10     RAW    

मैंने सोचा था कि वे दोनों (बहुत कम ahost पर ) IPv4 और IPv6 पते दोनों को प्रिंट करने वाले थे। ये मुद्रण भिन्न पते प्रकार क्यों हैं?

$ uname -srvmpio
Linux 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:17:36 UTC 2012 i686 i686 i386 GNU/Linux

संपादित करें : ऐसा लगता है कि यह इस बग रिपोर्ट से संबंधित हो सकता है ।


शीर्षक गलत है (आउटपुट के विपरीत)
व्हेन

जवाबों:


8

दोनों getent hostsऔर getent ahostsसंभावित दोनों IPv4 और IPv6 पतों मुद्रित कर सकते हैं, लेकिन वे जो पता (ते) तय अलग ढंग से मुद्रित करने के लिए (दो अलग-अलग आदेशों होने के बात है कि)।

hostsकॉल gethostbyname2(IPv6- समर्थक संस्करण gethostbyname)। व्यवहार कठोर-कोडित है : एक IPv6 पता देखें, और यदि कोई भी मौजूद नहीं है, तो IPv4 पता देखें।

ahostsकॉल करता है getaddrinfo। यह फ़ंक्शन किसी दिए गए नाम के लिए सभी प्रोटोकॉल की पुष्टि करता है, इसलिए यह IPv4 और IPv6 दोनों पतों को एक ही कॉल में वापस कर सकता है। यह जो रिटर्न देता है वह सेटिंग्स द्वारा निर्धारित किया जाता है /etc/gai.conf। क्योंकि कई एप्लिकेशन अभी भी IPv6 का सामना करने के लिए संघर्ष कर रहे हैं, अधिकांश वितरण डिफ़ॉल्ट रूप से IPv4 को पसंद करते हैं और केवल IPv6 का उपयोग स्पष्ट अनुरोध द्वारा करते हैं।

स्टैक एक्सचेंज में ahostsऔर gai.confउसके आसपास कुछ उपयोगी पढ़ने :

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