Comment puis-je résoudre un nom d'hôte sur une adresse IP dans un script bash?

Comment puis-je résoudre un nom d'hôte sur une adresse IP dans un script bash?
Chaque système d'un réseau TCP / IP se voit attribuer un identifiant unique connu sous le nom d'adresse IP qui aide à le connecter avec un autre système du réseau et partout sur Internet. Tous les sites Web auxquels vous accédez sur Internet ont également des adresses IP uniques. Comme il est difficile pour tout le monde de se souvenir des adresses IP de ces sites Web, le système DNS vient qui aide à traduire ces adresses IP difficiles à retenir en noms lisibles par l'homme. Avec DNS, vous n'avez plus à vous souvenir des adresses IP. Au lieu de cela, vous devez simplement vous souvenir du nom de domaine et tout. En fait, sur le soutien, le serveur DNS prend le nom d'hôte et le résout à une adresse IP à laquelle le navigateur ou l'application se connecte ensuite.

Dans cet article, nous expliquerons comment résoudre un nom d'hôte / nom de domaine à une adresse IPv4 et IPv6 dans un script bash. Cependant, avant de procéder à la création du script, passons en revue certaines des commandes qui peuvent être utilisées pour résoudre le nom d'hôte / nom de domaine à une adresse IP.

Ping-ping

Le ping est l'outil le plus simple et le plus intégré disponible sur presque tous les systèmes d'exploitation. Il est utilisé pour vérifier la remise de l'accouchement d'un hôte dans un réseau. Cependant, nous pouvons également l'utiliser pour trouver l'adresse IP par rapport à n'importe quel nom d'hôte / nom de domaine. Utilisez la syntaxe suivante pour trouver l'adresse IP d'un nom d'hôte / nom de domaine ciblé:

$ Ping Target-Host

Nslookup

NSlookup est largement utilisé pour résoudre le nom d'hôte à une adresse IP. Pour utiliser cette commande pour une recherche IP, utilisez la syntaxe suivante:

$ nslookup cible-host

Héberger

Un autre utilitaire de ligne de commande «hôte» peut être utilisé pour trouver une adresse IP par rapport à n'importe quel nom d'hôte / nom de domaine. Pour utiliser cette commande, utilisez la syntaxe suivante:

$ hôte cible-hôte

Creuser

DIG est un autre outil de ligne de commande utile qui est utilisé pour interroger divers enregistrements liés à DNS. Il peut être utilisé pour trouver une adresse IP par rapport à n'importe quel nom d'hôte / nom de domaine. Utilisez la commande Dig de la manière suivante pour trouver une adresse IP par rapport à un nom d'hôte / nom de domaine spécifique.

$ Dig Target-Host + Short

Script bash pour résoudre un nom d'hôte sur une adresse IP

Afin d'utiliser le script bash pour une recherche IP, suivez les étapes ci-dessous:

  1. Créer un fichier bash à l'aide de n'importe quel éditeur de texte. Ici, j'utiliserai l'éditeur Nano pour créer un script nommé "iplookup.shot".
    $ sudo nano script.shot
  1. Copier-coller les lignes suivantes dans votre fichier de script. Notez que, ici dans ce script, je spécifie le serveur DNS public de Google pour la recherche IP. Vous pouvez spécifier tout autre serveur DNS selon votre environnement.
    # Spécifiez le serveur DNS
    dnsserver = "8.8.8.8 "
    # Fonction pour obtenir l'adresse IP
    fonction get_ipaddr
    ip_address = ""
    Record # A et AAA pour IPv4 et IPv6, respectivement
    # 1 $ signifie premier argument
    si [-n "1 $"]; alors
    hostname = "$ 1"
    si [-z "query_type"]; alors
    query_type = "a"
    Fi
    # Utilisez la commande hôte pour les opérations de recherche DNS
    host -t $ query_type $ hostname &> / dev / null $ dnsserver
    Si ["$?"-eq" 0 "]; alors
    # Obtenez l'adresse IP
    ip_address = "$ (host -t $ query_type $ hostname $ dnsserver | awk '/ a.* Adresse / print $ nf; sortie')"
    autre
    sortie 1
    Fi
    autre
    sortie 2
    Fi
    # Afficher IP
    echo $ ip_address

    hostname = "$ 1"
    pour la requête dans "a-ipv4" "aaaa-ipv6"; faire
    query_type = "$ (printf $ query | cut -d- -f 1)"
    ipversion = "$ (printf $ query | cut -d- -f 2)"
    adresse = "$ (get_ipaddr $ hostname)"
    Si ["$?"-eq" 0 "]; alors
    si [-n "$ adresse"]; alors
    Echo "L'adresse $ ipversion du nom d'hôte $ hostname est: $ adresse"
    Fi
    autre
    écho "une erreur s'est produite"
    Fi
    fait
  2. Une fois terminé, utilisez Ctrl + O et Ctrl + X pour enregistrer et quitter le fichier respectivement.
  3. Maintenant, pour trouver une adresse IP par rapport à un nom d'hôte / nom de domaine ciblé, exécutez le script à l'aide de la syntaxe suivante:
    $ ./scénario.sh cible-hôte

    Par exemple, pour résoudre l'adresse IP de "Google.com », la commande serait:

    $ ./ iplookup.sh Google.com

    La sortie serait similaire à cela:

    De même, pour résoudre l'adresse IP de «Yahoo.com », la commande serait:

    $ ./ iplookup.sh yahoo.com

    La sortie serait similaire à cela:

    C'est tout ce qu'il y a! Dans cet article, nous avons appris à résoudre le nom d'hôte vers une adresse IPv4 et IPv6 à l'aide d'un script bash. Nous avons également appris d'autres outils de ligne de commande tels que Ping, NSlookup, Host et DIG qui peuvent être utilisés pour effectuer une recherche IP.