내 터미널은 그대로 출력됩니다.
$ 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
나는 그들이 모두 (적어도주인)은 IPv4 및 IPv6 주소를 모두 인쇄해야 합니다. 왜 다른 주소 유형을 인쇄합니까?
$ uname -srvmpio
Linux 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:17:36 UTC 2012 i686 i686 i386 GNU/Linux
편집하다: 관련이 있을 것 같습니다.이 버그 보고서.
답변1
getent hosts
및 둘 다 getent ahosts
IPv4 및 IPv6 주소를 인쇄할 수 있지만 인쇄할 주소를 다른 방식으로 결정합니다(이것이 두 가지 다른 명령을 사용하는 요점입니다).
hosts
수신 전화gethostbyname2
(IPv6 변형 지원gethostbyname
). 행동은하드코딩된: IPv6 주소를 찾고, IPv4 주소가 없으면 찾습니다.
ahosts
수신 전화getaddrinfo
. 이 함수는 지정된 이름에 대한 모든 프로토콜을 열거하므로 동일한 호출에서 IPv4 및 IPv6 주소를 모두 반환할 수 있습니다. 반환되는 내용은 다음의 설정에 따라 결정됩니다./etc/gai.conf
. 많은 애플리케이션이 여전히 IPv6로 어려움을 겪고 있기 때문에 대부분의 배포판에서는 기본적으로 IPv4를 선호하고 명시적으로 요청한 경우에만 IPv6을 사용합니다.
Stack Exchange에 관한 ahosts
유용한 자료는 다음과 같습니다.gai.conf