Qual è il comando per trovare il nome di un computer dato il suo indirizzo IP?
Dimentico sempre che cos'è questo comando, ma so che esiste in Windows e suppongo che esista sulla riga di comando * nix.
Qual è il comando per trovare il nome di un computer dato il suo indirizzo IP?
Dimentico sempre che cos'è questo comando, ma so che esiste in Windows e suppongo che esista sulla riga di comando * nix.
Risposte:
scavare e ospitare dovrebbe essere quello che stai cercando;)
http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html
Sul sistema * nix è possibile eseguire questo comando:
dig -x [address]
In alternativa è possibile aggiungere +short
alla fine del dig
comando per produrre solo il risultato dns.
Su Windows , utilizzarenslookup
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/
Su * nix puoi usare:
dig -x [address]
dig -x [address] +short
+short
bandiera è davvero utile!
man dig
, L'add è un indirizzo IPv4 in notazione decimale puntata o un indirizzo IPv6 delimitato da due punti.
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?
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, ricarica la shell e quindi puoi effettuare 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 del puntatore per "4.3.2.1.in-addr.arpa". La mia funzione accetta un indirizzo IP, inverte l'ordine degli ottetti (cioè lo cambia da 1.2.3.4 a 4.3.2.1), e quindi usa dig
per eseguire la ricerca PTR che ho appena descritto.
Ovviamente nslookup 1.2.3.4
puoi usarlo solo se ce l'hai, ma preferisco questa soluzione basata sullo scavo perché usa i server DNS del sistema operativo invece di quelli forniti da nslookup (se vuoi, a proposito, puoi aggiungere ulteriori flag di scavo quando chiami revdns
e passeranno per scavare)
dig -x dot-notation
è la "scorciatoia per le ricerche inverse". Mi chiedevo quale sarebbe stata la versione lunga. Grazie per aver spiegato! :)
man dig
: Quando si usa -x, non è necessario fornire gli argomenti name, class e type. dig esegue automaticamente una ricerca per un nome come 94.2.0.192.in-addr.arpa e imposta il tipo di query e la classe su PTR e IN rispettivamente.
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
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.
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.
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.
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 hai ragione signore.
Preferisco lo scavo 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!
drill
utilità dal ldns, vale a diredrill -x 123.123.123.123