les hôtes getent impriment IPv6, les hôtes getent impriment IPv4


9

Sortie verbatim de mon 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    

Je pensais qu'ils étaient tous les deux (au moins ahosts ) censés imprimer les adresses IPv4 et IPv6. Pourquoi ces types d'adresse sont-ils différents?

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

Modifier : il semble que cela puisse être lié à ce rapport de bogue .


Le titre est faux (l'opposé de la sortie)
whoan

Réponses:


8

Les deux getent hostset getent ahostspeuvent potentiellement imprimer les adresses IPv4 et IPv6, mais ils décident quelle (s) adresse (s) imprimer différemment (c'est le point d'avoir deux commandes différentes).

hostsappels gethostbyname2(la variante prenant en charge IPv6 de gethostbyname). Le comportement est codé en dur : recherchez une adresse IPv6 et, s'il n'en existe pas, recherchez une adresse IPv4.

ahostsles appels getaddrinfo. Cette fonction énumère tous les protocoles pour un nom donné, afin qu'elle puisse renvoyer les adresses IPv4 et IPv6 dans le même appel. Ce qu'il renvoie est déterminé par les paramètres de /etc/gai.conf. Étant donné que de nombreuses applications ont encore du mal à gérer IPv6, la plupart des distributions préfèrent IPv4 par défaut et n'utilisent IPv6 que sur demande explicite.

Quelques lectures utiles sur ahostset gai.confautour de Stack Exchange:

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.