getent hosts imprime IPv6, getent ahosts imprime IPv4


9

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 .


O título está errado (o oposto da saída)
whoan

Respostas:


8

Ambos getent hostse getent ahostspotencialmente 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).

hostschamadas gethostbyname2(a variante de suporte ao IPv6 gethostbyname). O comportamento é codificado : procure um endereço IPv6 e, se não houver, procure um endereço IPv4.

ahostschamadas getaddrinfo. 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 ahostse gai.confao redor da pilha de câmbio:

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.