Les solutions proposées jusqu'ici fonctionnent principalement dans le cas le plus simple: le nom d'hôte se résout directement en une adresse IPv4 unique. Cela peut être le seul cas où vous devez résoudre les noms d’hôte, mais si ce n’est pas le cas, vous trouverez ci-dessous une discussion sur certains cas que vous devrez peut-être gérer.
Chris Down et Heinzi ont brièvement évoqué le cas où le nom d'hôte résolvait en plusieurs adresses IP. Dans ce cas (et d'autres ci-dessous), la création de scripts de base en supposant qu'un nom d'hôte soit résolu directement en une seule adresse IP peut échouer. Ci-dessous, un exemple avec un nom d'hôte résolvant en plusieurs adresses 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
Mais qu'est ce que c'est www.l.google.com
? C'est ici que le cas du pseudonyme doit être introduit. Vérifions l'exemple ci-dessous:
$ 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
Donc, www.google.com
ne pas résoudre directement en adresses IP, mais en un alias qui se résout lui-même en plusieurs adresses IP. Pour plus d'informations sur les alias, cochez cette case . Bien entendu, le cas où un alias a une seule adresse IP est possible, comme indiqué ci-dessous:
$ 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
Mais les alias peuvent-ils être enchaînés? La réponse est oui:
$ 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
Je n'ai trouvé aucun exemple dans lequel un nom d'hôte résout un alias qui ne se résout pas en une adresse IP, mais je pense que le cas pourrait se produire.
Plus que de multiples adresses IP et alias, existe-t-il d'autres cas particuliers ... qu'en est-il de l'IPv6? Tu pourrais essayer:
$ 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
Où le nom d'hôte ipv6.google.com
est un nom d'hôte IPv6 uniquement. Qu'en est-il des noms d'hôte à double pile:
$ 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::
Encore une fois à propos de IPv6, si votre hôte est uniquement IPv4, vous pouvez toujours résoudre les adresses IPv6 (testé sur un IPX4 uniquement sous WinXP et avec ipv6.google.com, vous pouvez l’essayer sous Linux). Dans ce cas, la résolution aboutit, mais une requête ping échoue avec un message d'erreur d'hôte inconnu . Cela peut être un cas où votre script échoue.
J'espère que ces remarques ont été utiles.
getent <ahosts|ahostsv4|ahostsv6|hosts> <hostname>
réponse soit quelque part en bas, près du bas. C'est le plus simple, il ne nécessite aucun paquet supplémentaire et est également plus facile à analyser à partir d'un script Bash.