getent hosts drukuje IPv6, getent ahosts drukuje IPv4


9

Dokładne wyjście z mojego terminala:

$ 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    

Myślałem, że oboje (przynajmniej ahosts ) powinni drukować zarówno adresy IPv4, jak i IPv6. Dlaczego drukują różne typy adresów?

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

Edycja : wygląda na to, że może to być związane z tym raportem błędu .


Tytuł jest niepoprawny (przeciwieństwo wyniku)
whoan

Odpowiedzi:


8

Zarówno getent hostsi getent ahostspotencjalnie może drukować zarówno adresy IPv4 i IPv6, ale oni zdecydować, który adres (y), aby wydrukować inaczej (to jest sens posiadania dwóch różnych poleceń).

hostspołączeń gethostbyname2(wariant obsługujący IPv6 gethostbyname). Zachowanie jest zakodowane na stałe : wyszukaj adres IPv6, a jeśli nie istnieje, wyszukaj adres IPv4.

ahostspołączenia getaddrinfo. Ta funkcja wylicza wszystkie protokoły dla danej nazwy, dzięki czemu może zwrócić adresy IPv4 i IPv6 w tym samym wywołaniu. To, co zwraca, zależy od ustawień w /etc/gai.conf. Ponieważ wiele aplikacji wciąż ma trudności z poradzeniem sobie z IPv6, większość dystrybucji domyślnie preferuje IPv4 i używa IPv6 tylko na wyraźne żądanie.

Kilka przydatnych lektur na temat ahostsi gai.confwokół Stack Exchange:

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.