comment trouver le nom d'hôte de l'IP sans connexion à l'hôte

128

j'ai besoin de trouver le nom d'hôte d'un hôte UNIX dont l'IP est connue sans connexion à cet hôte UNIX

user75536
la source
19
NBTSTAT -A 10.10.10.10 pour Windows
Kanagavelu Sugumar
2
Allez-vous jamais accepter une réponse?
Paolo Stefan le
2
@PaoloStefan si l'utilisateur est vu pour la dernière fois en 2009, c'est un événement hautement improbable
Boris Treukhov

Réponses:

163

Utilisez nslookup

nslookup 208.77.188.166 
...
Non-authoritative answer:
166.188.77.208.in-addr.arpa     name = www.example.com.
vartec
la source
2
sur les installations centos, vous devrez d' sudo yum install bind-utilsabord exécuter . cela installera nslookup lookup pour vous
lfender6445
nslookup est obsolète. Vous pouvez utiliser 'dig' ou 'host' à la place
P. Barbadew
74

Vous pouvez également effectuer une recherche DNS inversée avec host. Donnez-lui simplement l'adresse IP comme argument:

$ host 192.168.0.10
server10 has address 192.168.0.10

la source
43

Un autre utilitaire de recherche NS qui peut être utilisé pour la recherche inversée est digavec l' -xoption:

$ dig -x 72.51.34.34

; <<>> DiG 9.9.2-P1 <<>> -x 72.51.34.34
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12770
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1460
;; QUESTION SECTION:
;34.34.51.72.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
34.34.51.72.in-addr.arpa. 42652 IN      PTR     sb.lwn.net.

;; Query time: 4 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Jan 25 21:23:40 2013
;; MSG SIZE  rcvd: 77

ou

$ dig -x 127.0.0.1

; <<>> DiG 9.9.2-P1 <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11689
;; flags: qr aa ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa.                IN      PTR

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 10      IN      PTR     localhost.

;; Query time: 2 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Jan 25 21:23:49 2013
;; MSG SIZE  rcvd: 63

Citant la page de manuel dig :

Les recherches inversées - mappage des adresses aux noms - sont simplifiées par l' option -x . addr est une adresse IPv4 en notation décimale à points ou une adresse IPv6 délimitée par deux points. Lorsque cette option est utilisée, il n'est pas nécessaire de fournir les arguments de nom, de classe et de type. dig effectue automatiquement une recherche pour un nom comme 11.12.13.10.in-addr.arpa et définit respectivement le type de requête et la classe sur PTR et IN.

Roi Grive Barbe
la source
27

Pour Windows ping -a 10.10.10.10

skm_satish
la source
17
  • Pour Windows, essayez:

    NBTSTAT -A 10.100.3.104
    

    ou

    ping -a 10.100.3.104
    
  • Pour Linux, essayez:

    nmblookup -A 10.100.3.104
    

Ils sont presque les mêmes.

Deepak Verma
la source
2
nmblookup fonctionnait très bien, je n'essayais pas de trouver le nom d'hôte d'un serveur Web, mais les ordinateurs qui faisaient des choses qu'ils ne devraient pas faire. Cela a révélé non seulement le nom d'hôte Windows, mais l'adresse Mac, qui était la prochaine sur ma liste!
FreeSoftwareServers
9
python -c "import socket;print(socket.gethostbyaddr('127.0.0.1'))"

si vous avez juste besoin du nom, pas d'informations supplémentaires, ajoutez [0] à la fin:

python -c "import socket;print(socket.gethostbyaddr('8.8.8.8'))[0]"
Ilya Kharlamov
la source
Il dit, socket de coloration syntaxique invalide.
Sandeep Roy
1
pour python3 changez print en une fonction avec parenthèses:python -c "import socket;print(socket.gethostbyaddr('10.16.7.10'))"
Corey Goldberg
7

Ça dépend du contexte. Je pense que vous faites référence au nom d'hôte du système d'exploitation (renvoyé par hostnamelorsque vous êtes connecté). Cette commande ne concerne que les noms internes , par conséquent, pour interroger le nom d'une machine, il faut différents systèmes de dénomination. Il existe plusieurs systèmes qui utilisent des noms pour identifier les hôtes, notamment DNS, DHCP, LDAP (DN) hostname, etc. et de nombreux systèmes utilisent zeroconf pour synchroniser les noms entre plusieurs systèmes de dénomination. Pour cette raison, les résultats de hostnamecorrespondent parfois aux résultats de dig(voir ci-dessous) ou d'autres systèmes de dénomination, mais souvent ils ne correspondent pas.

Le DNS est de loin le plus courant et est utilisé à la fois sur Internet (comme google.com. A 216.58.218.142) et à la maison (mDNS / LLMNR), alors voici comment effectuer une recherche DNS inversée : dig -x <address>( nslookupet hostsont plus simples, fournissent moins de détails, et peuvent même renvoyer différents résultats; cependant, dign'est pas inclus dans Windows).

Notez que les noms d'hôte dans un CDN ne se résoudront pas au nom de domaine canonique (par exemple "google.com"), mais plutôt au nom d'hôte de l'adresse IP hôte que vous avez interrogée (par exemple "dfw25s08-in-f142.1e100.net"; information intéressante: 1e100 est 1 googol).

Notez également que les hôtes DNS peuvent avoir plusieurs noms. Ceci est courant pour les hôtes disposant de plus d'un serveur Web (hébergement virtuel), bien que cela devienne moins courant grâce à la prolifération des technologies de virtualisation. Ces hôtes ont plusieurs enregistrements DNS PTR .

Enfin, notez que les enregistrements d'hôte DNS peuvent être remplacés par la machine locale via / etc / hosts . Si vous n'obtenez pas le nom d'hôte attendu, assurez-vous de vérifier ce fichier.

Les noms d'hôte DHCP sont interrogés différemment selon le logiciel de serveur DHCP utilisé, car (pour autant que je sache) le protocole ne définit pas de méthode d'interrogation; cependant, la plupart des serveurs offrent un moyen de le faire (généralement avec un compte privilégié).

Remarque Les noms DHCP sont généralement synchronisés avec le (s) serveur (s) DNS, il est donc courant de voir les mêmes noms d'hôte dans une table des moindres clients DHCP et dans les enregistrements A (ou AAAA pour IPv6) du serveur DNS. Encore une fois, cela se fait généralement dans le cadre de zeroconf.

Notez également que ce n'est pas parce qu'un bail DHCP existe pour un client qu'il est toujours utilisé.

NetBIOS pour TCP / IP (NBT) a été utilisé pendant des décennies pour effectuer la résolution de noms, mais a depuis été remplacé par LLMNR pour la résolution de noms (partie de zeroconf sous Windows). Ce système hérité peut toujours être interrogé avec le nbtstat(Windows) ou nmblookup(Linux).

Johntron
la source
@John Syrinek Pouvez-vous élaborer sur la requête de noms d'hôte DHCP? Je veux interroger le nom d'hôte d'une autre machine (dans le même wlan) par IP, est-ce possible?
jfly
2

Les autres réponses ici sont correctes - utilisez des recherches DNS inversées. Si vous souhaitez le faire via un langage de script (Python, Perl), vous pouvez utiliser l'API gethostbyaddr.

Moshe
la source
0

Si vous recherchez spécifiquement une machine Windows, essayez la commande ci-dessous:

nbtstat -a 10.228.42.57
Gyana Ranjan
la source
-1

Dans la plupart des cas, la commande traceroute fonctionne correctement. Les commandes nslookup et host peuvent échouer.

Arun
la source
4
c'est faux: étant donné une adresse IP, la seule chose à faire est une requête inverse vers le DNS. Ainsi, traceroute n'est pas le bon outil à suggérer.
Ottavio Campana