host getent stampa IPv6, host getent stampa IPv4


9

Uscita verbale dal mio terminale:

$ 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    

Pensavo che entrambi (per lo meno ahosts ) avrebbero dovuto stampare sia gli indirizzi IPv4 che IPv6. Perché questi tipi di indirizzi di stampa sono diversi?

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

Modifica : sembra che potrebbe essere correlato a questa segnalazione di bug .


Il titolo è sbagliato (l'opposto dell'output)
whoan

Risposte:


8

Sia getent hostse getent ahostspotenzialmente in grado di stampare entrambi gli indirizzi IPv4 e IPv6, ma decidono quale indirizzo (es) per stampare in modo diverso (che è il punto di avere due comandi diversi).

hostschiamate gethostbyname2(la variante di supporto IPv6 di gethostbyname). Il comportamento è hardcoded : cerca un indirizzo IPv6 e, se non esiste, cerca un indirizzo IPv4.

ahostschiamate getaddrinfo. Questa funzione enumera tutti i protocolli per un determinato nome, quindi può restituire gli indirizzi IPv4 e IPv6 nella stessa chiamata. Ciò che restituisce è determinato dalle impostazioni in /etc/gai.conf. Poiché molte applicazioni stanno ancora lottando per far fronte a IPv6, la maggior parte delle distribuzioni preferisce IPv4 per impostazione predefinita e usa IPv6 solo su richiesta esplicita.

Alcune utili letture su ahostse gai.confintorno a Stack Exchange:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.