GNU/Linux >> Tutoriels Linux >  >> Linux

Comment résoudre un nom d'hôte en adresse IP dans un script bash ?

Quelle est la manière la plus concise de résoudre un nom d'hôte en une adresse IP dans un script Bash ? J'utilise Arch Linux.

Réponse acceptée :

Vous pouvez utiliser getent , qui vient avec glibc (donc vous l'avez presque certainement sous Linux). Cela résout l'utilisation de gethostbyaddr/gethostbyname2, et vérifiera donc également /etc/hosts /NIS/etc :

getent hosts unix.stackexchange.com | awk '{ print $1 }'

Ou, comme Heinzi l'a dit ci-dessous, vous pouvez utiliser dig avec le +short argument (interroge directement les serveurs DNS, ne regarde pas /etc/hosts /NSS/etc) :

dig +short unix.stackexchange.com

Si dig +short n'est pas disponible, l'une des options suivantes devrait fonctionner. Tous ces éléments interrogent DNS directement et ignorent les autres moyens de résolution :

host unix.stackexchange.com | awk '/has address/ { print $4 }'
nslookup unix.stackexchange.com | awk '/^Address: / { print $2 }'
dig unix.stackexchange.com | awk '/^;; ANSWER SECTION:$/ { getline ; print $5 }'

Si vous ne souhaitez imprimer qu'une seule IP, ajoutez le exit commande pour awk le flux de travail.

dig +short unix.stackexchange.com | awk '{ print ; exit }'
getent hosts unix.stackexchange.com | awk '{ print $1 ; exit }'
host unix.stackexchange.com | awk '/has address/ { print $4 ; exit }'
nslookup unix.stackexchange.com | awk '/^Address: / { print $2 ; exit }'
dig unix.stackexchange.com | awk '/^;; ANSWER SECTION:$/ { getline ; print $5 ; exit }'

Linux
  1. Comment définir les paramètres lorsque Pipe Bash Script to Bash ?

  2. Comment appeler une fonction Bash dans le script Bash à l'intérieur d'Awk ?

  3. Comment inclure un fichier dans un script shell bash

  4. Script bash Linux pour extraire l'adresse IP

  5. Comment exécuter à plusieurs reprises un script bash toutes les N secondes ?

Comment exécuter un script bash {7 méthodes}

Comment écrire un script bash avec des exemples

Comment configurer une adresse IP statique sous Linux et Unix

Comment exécuter un script bash

Comment vérifier la syntaxe d'un script Bash sans l'exécuter ?

Comment passer des paramètres à un script Bash ?