Comment puis-je get la sortie et tester la command dig?

quand on tape "dig + short www.example.com" on obtient quelque chose comme ça:

www.example.com. 192.168.1.1 192.168.1.2 192.168.1.3 

Je veux get la première adresse et la tester si c'est ce que je veux (192.168.1.1)

Comment puis-je get la sortie de cette command, en particulier la deuxième ligne en utilisant le script shell?

Quelque chose comme ça va faire:

 $ dig +short www.google.com | head -1 74.125.225.113 

Mais faites attention car la plupart des servers qui ont plusieurs adresses IP feront une certaine forme de round robin au niveau du DNS de sorte que la list tourne généralement à chaque fois que vous exécutez la command dig :

 $ dig +short www.google.com 74.125.225.116 74.125.225.112 74.125.225.113 74.125.225.114 74.125.225.115 $ dig +short www.google.com 74.125.225.115 74.125.225.116 74.125.225.112 74.125.225.113 74.125.225.114 $ dig +short www.google.com 74.125.225.114 74.125.225.115 74.125.225.116 74.125.225.112 74.125.225.113 

Remarquez comment les adresses IP se déplacent d'une requête à l'autre? Ceci est fait pour équilibrer la charge sur ces servers.

Capture de l'IP dans une variable

La command suivante va capturer la sortie de l'adresse IP et la placer dans une variable shell.

 $ IP=$(dig +short www.google.com | head -1) 

Vous pouvez confirmer ceci comme ceci:

 $ echo $IP 74.125.225.114 

Voici

 dig +short www.example.com | sed -n '2{p;q}' 

-n empêche sed d'imprimer son input par défaut. 2 provoque l'exécution de p;q sur la ligne numéro 2. p signifie print et q pour quit