sviluppo-web-qa.it

Qual è l'utilità da riga di comando DNS inversa?

Qual è il comando per trovare il nome di un computer dato il suo indirizzo IP?

Dimentico sempre cos'è questo comando, ma so che esiste in Windows e presumo che esista sulla riga di comando * nix.

75
Peter Turner

Dig e Host dovrebbe essere quello che stai cercando;)

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

Sul sistema * nix puoi eseguire questo comando: Dig -x [address]

In alternativa puoi aggiungere +short alla fine del comando Dig per produrre solo il risultato dns.

Su Windows , usa nslookup

EDIT: nslookup funziona anche su sistemi * nix. Ulteriori informazioni sul comando nslookup se sembra che sia stato sostituito da un po 'di tempo: http://linuxreviews.org/man/nslookup/

59
Marc-Andre R.

Su * nix puoi usare:

Dig -x [address]
54
palehorse

Sulla maggior parte dei sistemi Linux di cui sono a conoscenza, puoi usare:

 nslookup <ip-number EX: 127.0.0.1>

funzionerà sulla riga di comando.

Vieni a pensarci bene, nslookup non è disponibile su Windows XP?

8
mdpc

Questa domanda ha già un milione di risposte, ma ne aggiungerò un'altra. Ecco una piccola funzione che ho scritto per fare facilmente DNS inverso con Dig. Aggiungi questo al tuo ~/.bashrc file, ricaricare Shell e quindi è possibile eseguire ricerche DNS inverse 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}"
}

Le ricerche DNS inverse vengono eseguite controllando i record del puntatore (PTR). Se vuoi fare il DNS inverso per "1.2.3.4", devi cercare i record dei puntatori per "4.3.2.1.in-addr.arpa". La mia funzione accetta un indirizzo IP, inverte l'ordine degli ottetti (ovvero lo cambia da 1.2.3.4 a 4.3.2.1), quindi usa Dig per eseguire la ricerca PTR che ho appena descritto.

Ovviamente puoi semplicemente usare nslookup 1.2.3.4 se ce l'hai, ma preferisco questa soluzione basata su Dig perché utilizza i server DNS del sistema operativo anziché quelli forniti da nslookup (se vuoi, a proposito, puoi aggiungere ulteriori flag Dig quando chiami revdns, e verranno passati a Dig)

4
Hayden Schiff

Prova "Host"

  • Ricerca diretta 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
    
  • Ricerca inversa con Host:

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

Simile a Dig

  • Ricerca diretta con Dig:

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

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

Sono ben consapevole che Dig/Host/nslookup sono gli strumenti standard per questi, ma li tengo in giro per testare la risoluzione del sistema operativo (essenzialmente, per testare nsswitch.conf funziona correttamente):

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";
}

esempio:

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

Su Windows ho preso l'abitudine di usare:

ping -a <ip address>

poiché ciò rifletterà anche i dati del tuo file hosts e WINS e così via.

3
Dave Webb

Se stai usando nslookup è questo (supponendo 192.168.0.1 come IP in questione)

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

EDIT: Ricorda che una ricerca inversa funziona solo se esiste un record PTR creato per l'IP e non è garantito che restituisca il nome host che stai cercando. Dipende completamente da come il DNS è configurato e gestito nella tua situazione.

1
squillman

PowerShell:

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

Preferisco Dig della riga di comando per Windows (disponibile qui: http://members.shaw.ca/nicholas.fong/Dig/ ) a nslookup ogni giorno.

Se devi testare/amministrare DNS da una workstation Windows, prendi questo strumento. Poi:

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

... ricorda anche di aggiungere c:\Dig al tuo percorso!

0
Cory J

Bene, una persona amichevole ha appena scritto nslookup è il comando, e ha ragione. Funziona su Unix e Windows. Non sono sicuro del motivo per cui hai eliminato la tua risposta, ma sei corretto signore.

0
Peter Turner

È la mia opinione su una ricerca inversa DNS più completa. Spero che questo possa tornare utile ai futuri spettatori di questa pagina.

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