¿Cuál es el comando para encontrar el nombre de una computadora dada su dirección IP?
Siempre olvido qué es este comando, pero sé que existe en Windows y supongo que existe en la línea de comandos * nix.
¿Cuál es el comando para encontrar el nombre de una computadora dada su dirección IP?
Siempre olvido qué es este comando, pero sé que existe en Windows y supongo que existe en la línea de comandos * nix.
Respuestas:
cavar y host debe ser lo que estás buscando;)
http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html
En el sistema * nix puedes hacer este comando:
dig -x [address]
Alternativamente, puede agregar +short
al final del dig
comando para generar solo el resultado dns.
En Windows , usenslookup
EDITAR: nslookup también funciona en sistemas * nix. Más información sobre el comando nslookup si parece haber sido reemplazado desde hace un tiempo: http://linuxreviews.org/man/nslookup/
En * nix puedes usar:
dig -x [address]
dig -x [address] +short
+short
bandera es realmente útil!
man dig
, El addr es una dirección IPv4 en notación decimal con puntos, o una dirección IPv6 delimitada por dos puntos.
En la mayoría de los sistemas Linux que conozco, puede usar:
nslookup <ip-number EX: 127.0.0.1>
funcionará en la línea de comando.
Ahora que lo pienso, ¿nslookup no está disponible en Windows XP?
Esta pregunta ya tiene un millón de respuestas, pero agregaré otra. Aquí hay una pequeña función que escribí para hacer fácilmente DNS inverso con dig. Agregue esto a su ~/.bashrc
archivo, vuelva a cargar su shell y luego puede realizar búsquedas inversas de DNS con 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}"
}
Las búsquedas inversas de DNS se realizan comprobando los registros del puntero (PTR). Si desea hacer DNS inverso para "1.2.3.4", debe buscar registros de puntero para "4.3.2.1.in-addr.arpa". Mi función toma una dirección IP, invierte el orden de los octetos (es decir, la cambia de 1.2.3.4 a 4.3.2.1) y luego usa dig
para ejecutar la búsqueda PTR que acabo de describir.
Por supuesto, puede usarlo nslookup 1.2.3.4
si lo tiene, pero prefiero esta solución basada en excavación porque usa los servidores DNS del sistema operativo en lugar de los proporcionados por nslookup (si lo desea, por cierto, puede agregar indicadores de excavación adicionales cuando llames revdns
, y pasarán a cavar)
dig -x dot-notation
es el "atajo para búsquedas inversas". Me preguntaba cuál sería la versión larga. ¡Gracias por la explicación! :)
man dig
: Cuando se usa -x, no es necesario proporcionar el nombre, la clase y los argumentos de tipo. dig realiza automáticamente una búsqueda de un nombre como 94.2.0.192.in-addr.arpa y establece el tipo de consulta y la clase en PTR e IN respectivamente.
Soy consciente de que dig / host / nslookup son las herramientas estándar para estas, pero las mantengo para probar la resolución del sistema operativo (esencialmente, para probar que nsswitch.conf funciona correctamente):
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";
}
ejemplo:
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
Búsqueda directa con 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
Búsqueda inversa con host
:
$ host 8.8.4.4
4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
Búsqueda directa con dig
:
$ dig google-public-dns-b.google.com. +short
8.8.4.4
Búsqueda inversa con dig
:
$ dig -x 8.8.4.4 +short
google-public-dns-b.google.com.
Si está utilizando nslookup es esto (suponiendo 192.168.0.1 como la IP en cuestión)
> set type=ptr
> 1.0.168.192.in-addr.arpa
EDITAR: recuerde que una búsqueda inversa solo funciona si hay un registro PTR creado para la IP, y no se garantiza que devuelva el nombre de host que está buscando. Depende completamente de cómo se configure y mantenga DNS en su situación.
Bueno, una persona amiga que acaba de escribir nslookup es el comando, y tiene razón. Funciona tanto en Unix como en Windows. No estoy seguro de por qué eliminó su respuesta, pero tiene razón, señor.
Prefiero la excavación de línea de comandos para Windows (disponible aquí: http://members.shaw.ca/nicholas.fong/dig/ ) a nslookup cualquier día.
Si tiene que probar / administrar DNS desde una estación de trabajo de Windows, tome esta herramienta. Entonces:
C:\dig>dig -x <IP Address>
... también, recuerde agregar c: \ dig a su ruta!
drill
utilidad de ldns, es decirdrill -x 123.123.123.123