Ausführliche Ausgabe von meinem Terminal:
$ 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
Ich dachte, sie sollten beide (zumindest Ahosts ) sowohl IPv4- als auch IPv6-Adressen drucken. Warum drucken diese unterschiedliche Adresstypen?
$ uname -srvmpio
Linux 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:17:36 UTC 2012 i686 i686 i386 GNU/Linux
Bearbeiten : Sieht so aus, als ob es mit diesem Fehlerbericht zusammenhängt .
Antworten:
Beide
getent hosts
undgetent ahosts
können möglicherweise sowohl IPv4- als auch IPv6-Adressen drucken, sie entscheiden jedoch, welche Adresse (n) unterschiedlich gedruckt werden soll (das ist der Punkt, an dem zwei verschiedene Befehle vorhanden sind).hosts
Aufrufegethostbyname2
(die IPv6-unterstützende Variante vongethostbyname
). Das Verhalten ist fest codiert : Suchen Sie nach einer IPv6-Adresse, und wenn keine vorhanden ist, suchen Sie nach einer IPv4-Adresse.ahosts
Anrufegetaddrinfo
. Diese Funktion listet alle Protokolle für einen bestimmten Namen auf, sodass sowohl IPv4- als auch IPv6-Adressen im selben Aufruf zurückgegeben werden können. Was es zurückgibt, wird durch die Einstellungen in bestimmt/etc/gai.conf
. Da viele Anwendungen immer noch Probleme mit IPv6 haben, bevorzugen die meisten Distributionen standardmäßig IPv4 und verwenden IPv6 nur auf ausdrückliche Anfrage.Einige nützliche Informationen zu
ahosts
undgai.conf
um Stack Exchange:quelle