지금까지 제공된 솔루션은 대부분 더 간단한 경우에 작동합니다. 호스트 이름은 단일 IPv4 주소로 직접 확인됩니다. 이것은 호스트 이름을 해결해야하는 유일한 경우 일 수 있지만 그렇지 않은 경우 아래에서 처리해야 할 경우에 대한 설명입니다.
Chris Down과 Heinzi는 호스트 이름이 둘 이상의 IP 주소로 확인되는 경우에 대해 간단히 설명했습니다. 이 경우 (및 아래의 다른 경우) 호스트 이름이 단일 IP 주소로 직접 확인된다는 가정하에 기본 스크립팅이 중단 될 수 있습니다. 아래는 호스트 이름이 하나 이상의 IP 주소로 확인되는 예입니다.
$ host www.l.google.com
www.l.google.com has address 209.85.148.147
www.l.google.com has address 209.85.148.103
www.l.google.com has address 209.85.148.99
www.l.google.com has address 209.85.148.106
www.l.google.com has address 209.85.148.105
www.l.google.com has address 209.85.148.104
그러나 무엇 www.l.google.com
입니까? 이 경우 별칭 케이스를 소개해야합니다. 아래 예를 확인하십시오.
$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.39.103
www.l.google.com has address 74.125.39.147
www.l.google.com has address 74.125.39.105
www.l.google.com has address 74.125.39.99
www.l.google.com has address 74.125.39.106
www.l.google.com has address 74.125.39.104
따라서 www.google.com
IP 주소로 직접 해석되지는 않지만 여러 IP 주소로 자체 해석되는 별명으로 해석됩니다. 별칭에 대한 자세한 내용은 여기를 확인 하십시오 . 물론, 아래와 같이 별명이 단일 IP 주소를 갖는 경우도 가능합니다.
$ host g.www.ms.akadns.net
g.www.ms.akadns.net is an alias for lb1.www.ms.akadns.net.
lb1.www.ms.akadns.net has address 207.46.19.190
그러나 별칭을 연결할 수 있습니까? 대답은 '예'입니다.
$ host www.microsoft.com
www.microsoft.com is an alias for toggle.www.ms.akadns.net.
toggle.www.ms.akadns.net is an alias for g.www.ms.akadns.net.
g.www.ms.akadns.net is an alias for lb1.www.ms.akadns.net.
lb1.www.ms.akadns.net has address 207.46.19.254
$ host www.google.fr
www.google.fr is an alias for www.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.39.147
www.l.google.com has address 74.125.39.103
www.l.google.com has address 74.125.39.99
www.l.google.com has address 74.125.39.106
www.l.google.com has address 74.125.39.104
www.l.google.com has address 74.125.39.105
호스트 이름이 IP 주소로 확인되지 않는 별칭으로 확인되는 예를 찾지 못했지만 문제가 발생할 수 있다고 생각합니다.
여러 개의 IP 주소 및 별칭보다 더 특별한 경우가 있습니까? IPv6는 어떻습니까? 시도해 볼 수 있습니다 :
$ host ipv6.google.com
ipv6.google.com is an alias for ipv6.l.google.com.
ipv6.l.google.com has IPv6 address 2a00:1450:8007::68
여기서 호스트 이름 ipv6.google.com
은 IPv6 전용 호스트 이름입니다. 이중 스택 호스트 이름은 어떻습니까?
$ host www.facebook.com
www.facebook.com has address 66.220.153.15
www.facebook.com has IPv6 address 2620:0:1c08:4000:face:b00c::
다시 IPv6에 대해, 호스트가 IPv4 전용 인 경우에도 IPv6 주소를 확인할 수 있습니다 (IPv4 전용 WinXP 및 ipv6.google.com에서 테스트 한 경우 Linux에서 시도 할 수 있음). 이 경우 해결에 성공하지만 알 수없는 호스트 오류 메시지 와 함께 핑이 실패 합니다 . 스크립팅이 실패하는 경우 일 수 있습니다.
그 말이 도움이 되었기를 바랍니다.
getent <ahosts|ahostsv4|ahostsv6|hosts> <hostname>
답이 바닥 근처 어딘가에 있다는 것을 부끄러운 일입니다 . 가장 간단하고 추가 패키지가 필요 없으며 Bash 스크립트에서 구문 분석 하기 가 더 쉽습니다 .