getent hosts imprime IPv6, getent ahosts imprime IPv4


9

Salida literal de mi 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    

Pensé que se suponía que ambos (al menos un host ) debían imprimir direcciones IPv4 e IPv6. ¿Por qué imprimen diferentes tipos de direcciones?

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

Editar : Parece que podría estar relacionado con este informe de error .


El título es incorrecto (lo contrario de la salida)
whoan

Respuestas:


8

Ambos getent hostsy getent ahostspotencialmente pueden imprimir direcciones IPv4 e IPv6, pero deciden qué dirección (es) imprimir de manera diferente (ese es el punto de tener dos comandos diferentes).

hostsllamadas gethostbyname2(la variante compatible con IPv6 de gethostbyname). El comportamiento está codificado : busque una dirección IPv6 y, si no existe, busque una dirección IPv4.

ahostsllamadas getaddrinfo. Esta función enumera todos los protocolos para un nombre dado, por lo que puede devolver direcciones IPv4 e IPv6 en la misma llamada. Lo que devuelve está determinado por la configuración en /etc/gai.conf. Debido a que muchas aplicaciones todavía tienen dificultades para hacer frente a IPv6, la mayoría de las distribuciones prefieren IPv4 de forma predeterminada y solo usan IPv6 por solicitud explícita.

Algunas lecturas útiles sobre Stack Exchange ahostsy sus gai.confalrededores:

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.