it-swarm-pt.tech

O que é o utilitário de linha de comando DNS reverso?

Qual é o comando para encontrar o nome de um computador devido ao seu endereço IP?

Sempre esqueço o que é esse comando, mas sei que ele existe no Windows e suponho que ele exista na linha de comando * nix.

75
Peter Turner

Dig e Host deve ser o que você está procurando;)

http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html

No sistema * nix, você pode executar este comando: Dig -x [address]

Como alternativa, você pode adicionar +short no final do comando Dig para gerar apenas o resultado dns.

No Windows , use nslookup

EDIT: nslookup também funciona em sistemas * nix. Mais informações sobre o comando nslookup se parece que foram substituídas há algum tempo: http://linuxreviews.org/man/nslookup/

59
Marc-Andre R.

No * nix, você pode usar:

Dig -x [address]
54
palehorse

Na maioria dos sistemas Linux que eu conheço, você pode usar:

 nslookup <ip-number EX: 127.0.0.1>

funcionará na linha de comando.

Pense bem, o nslookup não está disponível no Windows XP?

8
mdpc

Esta pergunta já tem um milhão de respostas, mas vou adicionar outra. Aqui está uma pequena função que escrevi para fazer facilmente o DNS reverso com o Dig. Adicione isso ao seu ~/.bashrc, recarregue seu Shell e, em seguida, você pode fazer pesquisas inversas de DNS com revdns 1.2.3.4:

function revdns() {
    octets=""
    addr="in-addr.arpa"

    # split the IP address into an array of octets
    IFS="." read -r -a octets <<< "$1"

    # add each octet to our $addr string in reverse order
    for octet in "${octets[@]}"; do
         addr=$octet"."$addr
    done

    # run a DNS pointer lookup with Dig
    # `+short` makes Dig's output very terse (un-verbose)
    # `"${@:2}"` passes any extra params from this command to Dig
    Dig ptr +short $addr "${@:2}"
}

As pesquisas reversas de DNS são feitas verificando os registros do ponteiro (PTR). Se você deseja reverter o DNS para "1.2.3.4", é necessário procurar registros de ponteiro para "4.3.2.1.in-addr.arpa". Minha função usa um endereço IP, inverte a ordem dos octetos (ou seja, altera-o de 1.2.3.4 para 4.3.2.1) e, em seguida, usa Dig para executar a pesquisa de PTR que acabei de descrever.

Você pode, é claro, apenas usar nslookup 1.2.3.4 se você a possui, mas eu prefiro esta solução baseada em Dig porque ela usa os servidores DNS do SO em vez dos fornecidos pela nslookup (se você quiser, a propósito, você pode adicionar sinalizadores Dig adicionais quando ligar para revdns, e eles serão passados ​​para Dig)

4
Hayden Schiff

Tente "Host"

  • Pesquisa direta com Host:

    $ Host google-public-dns-b.google.com.
    google-public-dns-b.google.com has address 8.8.4.4
    google-public-dns-b.google.com has IPv6 address 2001:4860:4860::8844
    
  • Pesquisa inversa com Host:

    $ Host 8.8.4.4
    4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
    

Semelhante ao Dig

  • Pesquisa direta com Dig:

    $ Dig google-public-dns-b.google.com. +short
    8.8.4.4
    
  • Pesquisa inversa com Dig:

    $ Dig -x 8.8.4.4 +short
    google-public-dns-b.google.com.
    
3
StackzOfZtuff

Estou ciente de que Dig/Host/nslookup são as ferramentas padrão para elas, mas eu as mantenho disponíveis para testar a resolução do sistema operacional (essencialmente, para testar se o nsswitch.conf está funcionando corretamente):

gethostbyname:

#!/usr/bin/Perl

use Socket;

my @t = gethostbyname($ARGV[0]);
print "\$name     = $t[0]\n"; shift(@t);
print "\$aliases  = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length   = $t[0]\n"; shift(@t);

foreach (@t) {
  print "          = ", inet_ntoa($_), "\n";
}

gethostbyaddr:

#!/usr/bin/Perl

use Socket;

my @t = gethostbyaddr(inet_aton($ARGV[0]), AF_INET);
print "\$name     = $t[0]\n"; shift(@t);
print "\$aliases  = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length   = $t[0]\n"; shift(@t);

foreach (@t) {
  print "          = ", inet_ntoa($_), "\n";
}

exemplo:

g3 0 /home/jj33/swap > gethostbyname www.google.com
$name     = www.l.google.com
$aliases  = www.google.com
$addrtype = 2
$length   = 4
          = 72.14.205.147
          = 72.14.205.103
          = 72.14.205.104
          = 72.14.205.99
g3 0 /home/jj33/swap > gethostbyaddr 72.14.205.147 
$name     = qb-in-f147.google.com
$aliases  = 
$addrtype = 2
$length   = 4
          = 72.14.205.147
3
jj33

No Windows, adquiri o hábito de usar:

ping -a <ip address>

pois isso também refletirá os dados do seu arquivo hosts e WINS e assim por diante.

3
Dave Webb

Se você estiver usando o nslookup, é este (assumindo 192.168.0.1 como o IP em questão)

> set type=ptr
> 1.0.168.192.in-addr.arpa

EDIT: Lembre-se de que uma pesquisa reversa só funciona se houver um registro PTR criado para o IP, e não é garantido o retorno do nome do host que você está procurando. Depende completamente de como o DNS é configurado e mantido na sua situação.

1
squillman

PowerShell:

[net.dns]::gethostentry("69.59.196.212").HostName
1
Richard

Prefiro a linha de comando Dig para Windows (disponível aqui: http://members.shaw.ca/nicholas.fong/Dig/ ) a nslookup a qualquer dia.

Se você precisar testar/administrar o DNS de uma estação de trabalho Windows, pegue esta ferramenta. Então:

C:\Dig>Dig -x <IP Address>

... lembre-se de adicionar c:\Dig ao seu caminho!

0
Cory J

Bem, uma pessoa amigável que acabou de escrever nslookup é o comando, e ele está certo. Funciona em Unix e Windows. Não sei por que você excluiu sua resposta, mas você está correto, senhor.

0
Peter Turner

Ela é minha opinião sobre uma pesquisa inversa de DNS mais completa. Espero que isso seja útil para os futuros espectadores desta página.

for ip in {1..254..1}; do Dig -x 1.1.1.$ip | grep $ip >> dns.txt; done;
0
Boschko