Các giải pháp được đưa ra cho đến nay hầu hết đều hoạt động trong trường hợp đơn giản hơn: tên máy chủ trực tiếp phân giải thành một địa chỉ IPv4 duy nhất. Đây có thể là trường hợp duy nhất mà bạn cần giải quyết tên máy chủ, nhưng nếu không, dưới đây là một cuộc thảo luận về một số trường hợp mà bạn có thể cần phải xử lý.
Chris Down và Heinzi đã thảo luận ngắn gọn về trường hợp tên máy chủ giải quyết thành nhiều hơn một địa chỉ IP. Trong trường hợp này (và những người khác bên dưới), tập lệnh cơ bản theo giả định rằng tên máy chủ trực tiếp phân giải thành một địa chỉ IP duy nhất có thể bị hỏng. Dưới đây, một ví dụ với tên máy chủ phân giải thành nhiều hơn một địa chỉ 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
Nhưng là www.l.google.com
gì? Đây là nơi trường hợp bí danh cần được giới thiệu. Hãy xem ví dụ dưới đây:
$ 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
Vì vậy, www.google.com
không trực tiếp giải quyết các địa chỉ IP, mà là một bí danh mà chính nó phân giải thành nhiều địa chỉ IP. Để biết thêm thông tin về bí danh, kiểm tra ở đây . Tất nhiên, trường hợp bí danh có một địa chỉ IP duy nhất là có thể, như được hiển thị bên dưới:
$ 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
Nhưng bí danh có thể bị xiềng xích? Câu trả lời là có:
$ 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
Tôi không tìm thấy bất kỳ ví dụ nào mà tên máy chủ phân giải thành bí danh không phân giải địa chỉ IP, nhưng tôi nghĩ trường hợp này có thể xảy ra.
Hơn nhiều địa chỉ IP và bí danh, có một số trường hợp đặc biệt khác ... còn IPv6 thì sao? Bạn có thể thử:
$ 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
Trong đó tên máy chủ ipv6.google.com
là tên máy chủ chỉ IPv6. Những gì về tên máy chủ ngăn xếp kép:
$ 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::
Một lần nữa về IPv6, nếu máy chủ của bạn chỉ là IPv4, bạn vẫn có thể giải quyết các địa chỉ IPv6 (chỉ được thử nghiệm trên IPv4 WinXP và với ipv6.google.com, bạn có thể dùng thử trên Linux). Trong trường hợp này, độ phân giải thành công, nhưng ping không thành công với thông báo lỗi máy chủ không xác định . Đây có thể là một trường hợp mà kịch bản của bạn thất bại.
Tôi hy vọng những nhận xét đó là hữu ích.
getent <ahosts|ahostsv4|ahostsv6|hosts> <hostname>
câu trả lời ở đâu đó ở dưới đó gần phía dưới. Đó là cách đơn giản nhất, không yêu cầu các gói bổ sung và cũng dễ dàng phân tích cú pháp từ tập lệnh Bash.