Qual é o comando para encontrar o nome de um computador devido ao seu endereço IP?
Eu sempre esqueço o que é esse comando, mas sei que ele existe no Windows e suponho que ele exista na linha de comando * nix.
Qual é o comando para encontrar o nome de um computador devido ao seu endereço IP?
Eu sempre esqueço o que é esse comando, mas sei que ele existe no Windows e suponho que ele exista na linha de comando * nix.
Respostas:
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 dig
comando a saída apenas do resultado do DNS.
No Windows , usenslookup
EDIT: nslookup também funciona em sistemas * nix. Mais informações sobre o comando nslookup se ele parece ter sido substituído há algum tempo: http://linuxreviews.org/man/nslookup/
No * nix, você pode usar:
dig -x [address]
dig -x [address] +short
+short
bandeira é realmente útil!
man dig
, O endereço é um endereço IPv4 em notação decimal com pontos, ou um endereço IPv6 delimitado por dois pontos.
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?
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
arquivo, recarregue seu shell e, em seguida, você poderá 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 pega um endereço IP, inverte a ordem dos octetos (ou seja, altera-o de 1.2.3.4 para 4.3.2.1) e depois usa dig
para executar a pesquisa PTR que acabei de descrever.
Você pode, é claro, usar apenas nslookup 1.2.3.4
se a tiver, mas eu prefiro essa solução baseada em escavação porque ela usa os servidores DNS do sistema operacional em vez dos fornecidos pela nslookup (se você quiser, a propósito, pode adicionar outros sinalizadores de escavação) quando você ligar revdns
, e eles serão passados para cavar)
dig -x dot-notation
está o "atalho para pesquisas reversas". Eu queria saber qual seria a versão longa. Obrigado por explicar! :)
man dig
: Quando o -x é usado, não há necessidade de fornecer os argumentos de nome, classe e tipo. O dig executa automaticamente uma pesquisa por um nome como 94.2.0.192.in-addr.arpa e define o tipo e a classe de consulta como PTR e IN, respectivamente.
Estou ciente de que dig / host / nslookup são as ferramentas padrão para isso, 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
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.
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.
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 inversa 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 está configurado e mantido na sua situação.
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 está correto, senhor.
Prefiro a digitação da linha de comando 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!
drill
utilitário ldns, ou seja,drill -x 123.123.123.123