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

How Can I Resolve Hostname An Ip Address Bash Script



Chaque système d'un réseau TCP/IP se voit attribuer un identifiant unique appelé adresse IP qui permet de le connecter à d'autres systèmes 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 permet de traduire ces adresses IP difficiles à mémoriser en noms lisibles par l'homme. Avec DNS, vous n'avez plus à vous souvenir des adresses IP. Au lieu de cela, vous n'avez qu'à vous souvenir du nom de domaine et tout est fait. En fait, sur le support, le serveur DNS prend le nom d'hôte et le résout en 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 en 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 en une adresse IP.







Ping

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 l'accessibilité 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é :



$pinghôte-cible



Nslookup

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





$hôte cible nslookup

Hôte

Un autre hôte utilitaire de ligne de commande 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

Tu

Dig est un autre outil de ligne de commande utile qui est utilisé pour interroger divers enregistrements liés au 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 rechercher une adresse IP par rapport à un nom d'hôte/nom de domaine spécifique.

$tuhôte-cible +court

Script Bash pour résoudre un nom d'hôte en une adresse IP

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

  1. Créez 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.sh .$sudo nanoscript.sh
  1. Copiez-collez 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 n'importe quel autre serveur DNS selon votre environnement.# Spécifiez le serveur DNS
    Serveur dns='8.8.8.8'
    # fonction pour obtenir l'adresse IP
    fonctionget_ipaddr{
    adresse IP=''
    # Enregistrement A et AAA pour IPv4 et IPv6, respectivement
    # $1 représente le premier argument
    si [ -n '$1' ];alors
    nom d'hôte='$ {1}'
    si [ -Avec 'type_requête' ];alors
    type_requête='À'
    être
    # utiliser la commande host pour les opérations de recherche DNS
    hôte-t ${query_type} ${nom d'hôte} &> /développeur/nul$ {dnsserver}
    si [ '$?' -eq '0' ];alors
    # obtenir l'adresse IP
    adresse IP='$(host -t ${query_type} ${hostname} ${dnsserver}| awk '/has.*address/{print $NF; exit}')'
    autre
    sortir 1
    être
    autre
    sortir 2
    être
    # IP d'affichage
    chassèrent $adresse_ip
    }
    nom d'hôte='$ {1}'
    pourmettre en doutedans 'A-IPv4' 'AAAA-IPv6';faire
    type_requête='$(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
    chassèrent 'Les${ipversion}adresse du nom d'hôte${nom d'hôte}est:$adresse'
    être
    autre
    chassèrent 'Une erreur s'est produite'
    être
    terminé
  2. Une fois cela fait, 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/de domaine ciblé, exécutez le script en utilisant la syntaxe suivante :$./script.sh hôte-cible

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

    $./iplookup.sh google.com

    La sortie ressemblerait à ceci :

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

    $./iplookup.sh yahoo.com

    La sortie ressemblerait à ceci :

    C'est tout ce qu'il y a à faire ! Dans cet article, nous avons appris à résoudre le nom d'hôte en 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.