Saída integral do meu 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
Eu pensei que ambos (pelo menos ahosts ) deveriam imprimir endereços IPv4 e IPv6. Por que esses tipos de impressão estão diferentes?
$ uname -srvmpio
Linux 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:17:36 UTC 2012 i686 i686 i386 GNU/Linux
Edit : Parece que pode estar relacionado a este relatório de bug .
Respostas:
Ambos
getent hosts
egetent ahosts
potencialmente pode imprimir ambos os endereços IPv4 e IPv6, mas eles decidir qual endereço (s) para imprimir de forma diferente (que é o ponto de ter dois comandos diferentes).hosts
chamadasgethostbyname2
(a variante de suporte ao IPv6gethostbyname
). O comportamento é codificado : procure um endereço IPv6 e, se não houver, procure um endereço IPv4.ahosts
chamadasgetaddrinfo
. Essa função enumera todos os protocolos para um determinado nome, para que ele possa retornar endereços IPv4 e IPv6 na mesma chamada. O que ele retorna é determinado pelas configurações em/etc/gai.conf
. Como muitos aplicativos ainda estão lutando para lidar com o IPv6, a maioria das distribuições prefere o IPv4 por padrão e só usa o IPv6 por solicitação explícita.Algumas leituras úteis sobre
ahosts
egai.conf
ao redor da pilha de câmbio:fonte