it-swarm-es.com

¿Qué es la utilidad de línea de comando DNS inversa?

¿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.

75
Peter Turner

Dig 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 puede hacer este comando: Dig -x [address]

Alternativamente, puede agregar +short al final del comando Dig para generar solo el resultado dns.

En Windows , use nslookup

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/

59
Marc-Andre R.

En * nix puedes usar:

Dig -x [address]
54
palehorse

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?

8
mdpc

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 hacer búsquedas DNS inversas 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, puedes usar nslookup 1.2.3.4 si lo tiene, pero prefiero esta solución basada en Dig porque usa los servidores DNS del sistema operativo en lugar de los proporcionados por nslookup (si lo desea, por cierto, puede agregar indicadores Dig adicionales cuando llame revdns, y pasarán a Dig)

4
Hayden Schiff

Prueba con "Host"

  • 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.
    

Similar a Cavar

  • 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.
    
3
StackzOfZtuff

Soy consciente de que Dig/Host/nslookup son las herramientas estándar para estos, pero los 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
3
jj33

En Windows tuve la costumbre de usar:

ping -a <ip address>

ya que esto también reflejará los datos de su archivo hosts y WINS y así sucesivamente).

3
Dave Webb

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

EDIT: 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.

1
squillman

Potencia Shell:

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

Prefiero la línea de comandos Dig 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 camino!

0
Cory J

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.

0
Peter Turner

Ella es mi opinión sobre una búsqueda inversa DNS más completa. Espero que esto sea útil para los futuros espectadores de esta página.

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