Como posso obter a saída e testar o comando dig?

7

quando digitamos o comando "dig + short www.example.com" nós temos algo assim:

www.example.com.
192.168.1.1
192.168.1.2
192.168.1.3

Eu quero pegar o primeiro endereço e testá-lo se for o que eu quero (192.168.1.1)

Como posso obter a saída deste comando, especialmente a segunda linha usando o script de shell?

    
por Networker 31.08.2013 / 02:59

2 respostas

7

Algo como isso será feito:

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

Mas tenha cuidado, pois a maioria dos servidores que têm vários endereços IP farão algum tipo de round robin no nível do DNS, portanto, a lista normalmente gira sempre que você executar o comando 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

Observe como os IPs se movem da consulta para a consulta? Isso é feito para equilibrar a carga nesses servidores.

Capturando o IP em uma variável

O comando a seguir irá capturar a saída do endereço IP e colocá-lo em uma variável shell.

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

Você pode confirmar isso assim:

$ echo $IP
74.125.225.114
    
por 31.08.2013 / 03:04
3

Aqui você vai

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

-n impede que o sed imprima sua entrada por padrão. 2 faz com que execute p;q no número da linha 2. p significa print e q para quit

    
por 31.08.2013 / 03:01

Tags