Você pode usar dig -x $IP_ADDRESS +short
em um script assim:
#!/bin/bash
export LC_ALL=C
for item
do
domain=$(dig -x "$item" +short)
if [ -n "$domain" ] ;
then
echo "$domain"
else
echo "$item" result is NULL
fi
done
Demonstração do uso de amostra (todos os endereços IP fornecidos como espaço separado):
$ ./reverse_dns_lookup.sh 8.8.8.8 74.125.193.94 151.101.193.69
google-public-dns-a.google.com.
ig-in-f94.1e100.net.
151.101.193.69 result is NULL
Como você pode ver, no último exemplo, nosso servidor DNS não encontrou domínio para o endereço IP que fornecemos. Nesse caso, podemos usar um servidor DNS diferente, por exemplo, open_dns com dig @208.67.220.220 $IP_ADDRESS +short
Na demonstração acima, os endereços IP são fornecidos na linha de comando, como ./reverse_dns_lookup.sh ADDRESS1 ADDRESS2 ADDRESS2
, mas você também pode usar um arquivo para isso, assim:
$ cat ip_addresses.txt | xargs ./reverse_dns_lookup.sh <
google-public-dns-a.google.com.
resolver2.opendns.com.
192.30.253.112 result is NULL
Versão alternativa
Aqui está uma versão alternativa do script que imprime a seção AUTHORITY de dig's
output. Isso pode ser muito melhor e mais confiável do que apenas +short
versão. OBSERVAÇÃO: isso usa 8.8.8.8
, que é o DNS público do Google. Use um servidor diferente se achar necessário.
#!/bin/bash
export LC_ALL=C
for item
do
domain=$(dig @8.8.8.8 -x "$item" +noall +authority +answer)
if [ -n "$domain" ] ;
then
echo "$domain"
else
echo "$item" result is NULL
fi
done
Demo:
$ cat ip_addresses.txt | xargs ./reverse_dns_lookup.sh
; <<>> DiG 9.10.3-P4-Ubuntu <<>> @8.8.8.8 -x 8.8.8.8 +noall +authority +answer
; (1 server found)
;; global options: +cmd
8.8.8.8.in-addr.arpa. 21390 IN PTR google-public-dns-a.google.com.
; <<>> DiG 9.10.3-P4-Ubuntu <<>> @8.8.8.8 -x 208.67.220.220 +noall +authority +answer
; (1 server found)
;; global options: +cmd
220.220.67.208.in-addr.arpa. 6674 IN PTR resolver2.opendns.com.
; <<>> DiG 9.10.3-P4-Ubuntu <<>> @8.8.8.8 -x 192.30.253.112 +noall +authority +answer
; (1 server found)
;; global options: +cmd
253.30.192.in-addr.arpa. 10 IN SOA ns1.p16.dynect.net. ops.github.com. 6 3600 600 604800 60