Pesquisa de DNS inversa do script de shell

0

Estou tentando fazer um script de shell para fazer uma pesquisa reversa de DNS, mas não consigo fazer isso funcionar.

Basicamente, quero fazer isso:

dig -x 8.8.8.8 +short 

A saída será esta: google-public-dns-a.google.com . Eu quero enviar isso para um arquivo de saída.

No momento, meu código é assim.

#!/bin/bash
#Read a file where per line there will be an IP address. The .in file is the input/sourcelist from which IP addresses are read
cat reverse_dns_lookup.in | while read line
#
do
    # Do a reverse lookup
    dig -x $line +short
done

Quando executo o script, parece que nada está acontecendo, então pensei que não chamaria dig , mas teste primeiro o script assim:

echo dig -x $line +short

Mesmo isso não produz saída. O que estou perdendo aqui?

    
por frankguthrie 11.10.2017 / 12:01

2 respostas

1

Supondo que reverse_dns_lookup.in contenha

-x 8.8.8.8
-x 127.0.0.1

Então:

$ dig -f reverse_dns_lookup.in +short
google-public-dns-a.google.com.
localhost.

Para adicionar o -x ao conteúdo do arquivo existente e chamar dig sem modificar o arquivo, usando a substituição de processo:

$ dig -f <( sed 's/^/-x /' reverse_dns_lookup.in ) +short

Isso evita chamar dig várias vezes em um loop e evita analisar o arquivo reverse_dns_lookup.in com read .

Em seguida, redirecione a saída para um arquivo de sua escolha:

$ dig -f <( sed 's/^/-x /' reverse_dns_lookup.in ) +short >dig-results.txt

Para conseguir sincronizar o endereço IP com o resultado das consultas bem-sucedidas:

$ dig -f <( sed 's/^/-x /' reverse_dns_lookup.in ) +noall +answer | awk '{ print $1, $NF }' >dig-results.txt

Para o arquivo de exemplo que usei, isso dará

8.8.8.8.in-addr.arpa. google-public-dns-a.google.com.
1.0.0.127.in-addr.arpa. localhost.

em dig-results.txt .

    
por 11.10.2017 / 13:06
0
#!/bin/bash

while read line
do
        echo $line - 'dig -x "$line" +short'
done < reverse_dns_lookup.in

Este código está funcionando bem para mim. Você precisa ter certeza de que o arquivo reverse_dns_lookup.in está no lugar certo.

Para enviar saída do script para o arquivo, basta redirecioná-lo usando o operador padrão de redirecionamento de stdin no bash: ./script.sh > output_file.txt

Também respondendo Suas preocupações de mudança foram feitas para mostrar o IP junto com a entrada do revdns.

    
por 11.10.2017 / 12:05