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 sous Windows et je suppose qu'elle existe sur la ligne de commande * nix.
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 sous Windows et je suppose qu'elle existe sur la ligne de commande * nix.
Réponses:
creuser et héberger devraient être ce que vous cherchez;)
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]
Sinon, vous pouvez ajouter +short
à la fin de la dig
commande pour ne générer que le résultat DNS.
Sous Windows , utiliseznslookup
EDIT: nslookup fonctionne aussi sur les systèmes * nix. Plus d'infos sur la commande nslookup pour savoir si elle semble avoir été remplacée depuis un moment: http://linuxreviews.org/man/nslookup/
Sur * nix, vous pouvez utiliser:
dig -x [address]
dig -x [address] +short
+short
drapeau est vraiment utile!
man dig
, L'addr est une adresse IPv4 en notation décimale à point, ou une adresse IPv6 délimitée par des deux points.
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 un reverse DNS avec dig. Ajoutez ceci à votre ~/.bashrc
fichier, rechargez votre shell, puis vous pourrez faire des recherches DNS inversées 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 inverser le DNS pour "1.2.3.4", vous devez rechercher les 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 qu'elle passe de 1.2.3.4 à 4.3.2.1), puis utilise dig
pour exécuter la recherche PTR que je viens de décrire.
Vous pouvez, bien sûr, utiliser nslookup 1.2.3.4
si vous en 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 balises dig supplémentaires) quand vous appelez revdns
, et ils seront passés à creuser)
dig -x dot-notation
s'agit du "raccourci pour les recherches inversées". Je me demandais quelle serait la version longue. Merci de m'avoir expliqué! :)
man dig
: lorsque le -x est utilisé, il n'est pas nécessaire de fournir les arguments name, class et type. dig effectue automatiquement la recherche d'un nom tel que 94.2.0.192.in-addr.arpa et définit le type de requête et la classe sur PTR et IN respectivement.
Je sais bien 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 (pour l'essentiel, 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
Recherche avancée 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 avancée 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.
Si vous utilisez nslookup c'est ceci (en supposant que 192.168.0.1 est l'adresse 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 a été créé pour l'adresse IP et qu'il n'est pas garanti que le nom d'hôte que vous recherchez lui soit renvoyé. Tout dépend de la configuration et de la maintenance du DNS dans votre situation.
Eh bien, une personne amicale vient d'écrire que nslookup est la commande, et il a raison. Cela fonctionne à la fois sous Unix et Windows. Vous ne savez pas pourquoi vous avez supprimé votre réponse, mais vous avez raison, monsieur.
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 le DNS depuis un poste de travail Windows, utilisez cet outil. Ensuite:
C:\dig>dig -x <IP Address>
... aussi, n'oubliez pas d'ajouter c: \ dig à votre chemin!
nbtstat -a <adresse ip>
drill
utilitaire de ldns, c'estdrill -x 123.123.123.123