Effectuer des recherches DNS détaillées avec la commande host sous OS X

Tous les domaines sont associés à une adresse IP, que ce soit pour un site Web, un serveur de messagerie ou autre. Si l'utilisation de nslookup offre un moyen simple d'obtenir des informations DNS et une adresse IP pour un site Web ou un domaine spécifique, si vous souhaitez obtenir une extraction beaucoup plus détaillée, vous pouvez utiliser la commande host à la place. La commande host effectue une recherche DNS étendue pour tout domaine ciblé, ce qui la rend beaucoup plus utile que nslookup ou creuse pour de nombreuses situations. Cela peut être utile dans de nombreuses situations, que ce soit pour résoudre des problèmes de propagation DNS ou simplement pour obtenir une adresse IP, un CNAME, une adresse IPv6 ou autre.


L'utilisation de la commande host est assez simple, elle est incluse dans Mac OS X et Linux, vous devriez donc pouvoir l'utiliser partout où cela est nécessaire pour effectuer une recherche DNS. La syntaxe de la commande est simple, ouvrez Terminal et utilisez simplement ce qui suit:

host [domain]

Vous pouvez également utiliser l'indicateur -a pour obtenir des informations sur le DNS, ce qui se traduit par une recherche complète:

host -a [domain]

Par exemple, en remplaçant [domaine] par google et en exécutant l'hôte -a sur google.com, vous obtenez une liste détaillée des détails de recherche DNS de myriades d'adresses IP et de serveurs de messagerie.

Air% host -a google.com
Trying "google.com"
;; Truncated, retrying in TCP mode.
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64673 ;; flags: qr rd ra; QUERY: 1, ANSWER: 27, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN ANY ;; ANSWER SECTION: google.com. 299 IN A 1.2.3.208 google.com. 299 IN A 1.2.3.213 google.com. 299 IN A 1.2.3.210 google.com. 299 IN A 1.2.3.212 google.com. 299 IN A 1.2.3.215 google.com. 299 IN A 1.2.3.209 google.com. 299 IN A 1.2.3.214 google.com. 299 IN A 1.2.3.221 google.com. 299 IN A 1.2.3.218 google.com. 299 IN A 1.2.3.211 google.com. 299 IN A 1.2.3.220 google.com. 299 IN A 1.2.3.219 google.com. 299 IN A 1.2.3.216 google.com. 299 IN A 1.2.3.217 google.com. 299 IN A 1.2.3.207 google.com. 21599 IN NS ns3.google.com. google.com. 599 IN MX 40 alt3.aspmx.l.google.com. google.com. 21599 IN TYPE257 \# 19 000714981749824711982818926F6D google.com. 21599 IN SOA ns1.google.com. dns-admin.google.com. 2015031701 7200 1800 1209600 300 google.com. 599 IN MX 50 alt4.aspmx.l.google.com. google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ip4:21.71.93.70/31 ip4:211.24.93.2/31 ~all" google.com. 21599 IN NS ns1.google.com. google.com. 21599 IN NS ns2.google.com. google.com. 599 IN MX 10 aspmx.l.google.com. google.com. 599 IN MX 20 alt1.aspmx.l.google.com. google.com. 21599 IN NS ns4.google.com. google.com. 599 IN MX 30 alt2.aspmx.l.google.com. Received 613 bytes from 8.8.8.8#53 in 98 ms Air%

Vous remarquerez vers la fin que les serveurs DNS utilisés pour la recherche seront également listés, sans avoir à les interroger directement, bien que cela soit toujours recommandé si vous voulez une liste complète de tous les serveurs DNS utilisés par une machine spécifique. Si elles ont été modifiées récemment et que les données que vous voyez ne correspondent pas à ce qu'elles devraient être, il peut s'avérer nécessaire de vider le cache DNS.

Vous pouvez également obtenir des types d'enregistrements spécifiques avec l'indicateur -t, par exemple, si vous voulez un enregistrement CNAME ou ANAME, ou NameServer (NS), la syntaxe devrait ressembler à ceci:

host -t NS [domain]

Toujours pour utiliser google.com à titre d'exemple, interroger le serveur de noms se traduirait par:

% host -t NS google.com
google.com name server ns3.google.com.
google.com name server ns2.google.com.
google.com name server ns1.google.com.
google.com name server ns4.google.com.

La prochaine fois que vous travaillerez sur des problèmes DNS, souvenez-vous de la commande hôte, c'est une bonne chose à ajouter à votre boîte à outils réseau.