Наразі рішення, в основному, працюють у більш простому випадку: ім'я хоста безпосередньо вирішується на одну адресу IPv4. Це може бути єдиний випадок, коли вам потрібно вирішити імена хостів, але якщо ні, то нижче наведено обговорення деяких випадків, з якими вам може знадобитися вирішити.
Кріс Даун та Хайнці коротко обговорили випадок, коли ім'я хоста вирішується на більш ніж одну 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.