Quelle est la commande pour trouver le nom d'un ordinateur en fonction de son adresse IP?
J'oublie toujours ce qu'est cette commande, mais je sais qu'elle existe dans Windows et je suppose qu'elle existe sur la ligne de commande * nix.
Dig et Host devrait être ce que vous recherchez;)
http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html
Sur le système * nix, vous pouvez exécuter cette commande: Dig -x [address]
Vous pouvez également ajouter +short
à la fin de la commande Dig
pour afficher uniquement le résultat DNS.
Sous Windows , utilisez nslookup
EDIT: nslookup fonctionne également sur les systèmes * nix. Plus d'infos sur la commande nslookup si elle semble avoir été remplacée depuis un moment maintenant: http://linuxreviews.org/man/nslookup/
Sur * nix, vous pouvez utiliser:
Dig -x [address]
Sur la plupart des systèmes Linux que je connais, vous pouvez utiliser:
nslookup <ip-number EX: 127.0.0.1>
fonctionnera sur la ligne de commande.
À bien y penser, nslookup n'est-il pas disponible sur Windows XP?
Cette question a déjà un million de réponses, mais je vais en ajouter une autre. Voici une petite fonction que j'ai écrite pour faire facilement du DNS inversé avec Dig. Ajoutez ceci à votre ~/.bashrc
fichier, rechargez votre shell, puis vous pouvez effectuer des recherches DNS inverses avec 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}"
}
Les recherches DNS inversées sont effectuées en vérifiant les enregistrements de pointeur (PTR). Si vous voulez faire du DNS inversé pour "1.2.3.4", vous devez rechercher des enregistrements de pointeur pour "4.3.2.1.in-addr.arpa". Ma fonction prend une adresse IP, inverse l'ordre des octets (c'est-à-dire la change de 1.2.3.4 en 4.3.2.1), puis utilise Dig
pour exécuter la recherche PTR que je viens de décrire.
Vous pouvez bien sûr simplement utiliser nslookup 1.2.3.4
si vous l'avez, mais je préfère cette solution basée sur Dig car elle utilise les serveurs DNS du système d'exploitation au lieu de ceux fournis par nslookup (si vous le souhaitez, vous pouvez ajouter des indicateurs Dig supplémentaires lorsque vous appelez revdns
, et ils seront transmis à Dig)
Recherche directe avec 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
Recherche inversée avec Host
:
$ Host 8.8.4.4
4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
Recherche directe avec Dig
:
$ Dig google-public-dns-b.google.com. +short
8.8.4.4
Recherche inversée avec Dig
:
$ Dig -x 8.8.4.4 +short
google-public-dns-b.google.com.
Je suis bien conscient que Dig/Host/nslookup sont les outils standard pour ceux-ci, mais je les garde pour tester la résolution du système d'exploitation (essentiellement, pour tester nsswitch.conf fonctionne correctement):
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";
}
exemple:
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
Sous Windows, j'ai pris l'habitude d'utiliser:
ping -a <ip address>
car cela reflétera également les données de votre fichier hosts
et WINS et ainsi de suite.
Si vous utilisez nslookup, c'est ceci (en supposant que 192.168.0.1 est l'IP en question)
> set type=ptr
> 1.0.168.192.in-addr.arpa
EDIT: N'oubliez pas qu'une recherche inversée ne fonctionne que si un enregistrement PTR est créé pour l'IP, et il n'est pas garanti de renvoyer le nom d'hôte que vous recherchez. Cela dépend entièrement de la façon dont le DNS est configuré et maintenu dans votre situation.
Powershell:
[net.dns]::gethostentry("69.59.196.212").HostName
Je préfère la ligne de commande Dig pour Windows (disponible ici: http://members.shaw.ca/nicholas.fong/Dig/ ) à nslookup tous les jours.
Si vous devez tester/administrer DNS à partir d'un poste de travail Windows, prenez cet outil. Alors:
C:\Dig>Dig -x <IP Address>
... n'oubliez pas d'ajouter c:\Dig à votre chemin!
Eh bien, une personne sympathique vient d'écrire nslookup est la commande, et il a raison. Il fonctionne sur Unix et Windows. Je ne sais pas pourquoi vous avez supprimé votre réponse, mais vous avez raison, monsieur.
Voici ma vision d'une recherche inversée DNS plus complète. J'espère que cela sera utile aux futurs téléspectateurs de cette page.
for ip in {1..254..1}; do Dig -x 1.1.1.$ip | grep $ip >> dns.txt; done;