2011-09-01 4 views
5

J'essaie d'obtenir le nom de domaine complet d'une machine Windows dans mon domaine, en utilisant du code Java.Obtenir le nom de domaine complet en Java

J'ai essayé le InetAddress.getByName("machine-1").getCanonicalHostName() mais ne retourne que le nom de la machine.

D'autre part, si je ping "machine-1", j'obtiens le nom de domaine complet.

Savez-vous comment le faire?

+0

Je me demandais, si vous définissez une entrée dans le etc/hosts de Windows votre code fonctionne-t-il? – Cratylus

Répondre

2

La réponse simple est que ce que vous suggérez fonctionne si c'est possible.

L'API indique qu'il retournera le nom de domaine complet s'il le peut. Cela dépend de la configuration du système.

Le code que vous postez ne fonctionne pas pour moi sur une machine de domaine Windows, mais je ne peux pas dire pourquoi ce ne serait pas pour vous. Si vous ne parvenez pas à modifier la configuration machine/domaine de manière à ce que Java puisse la récupérer, et que votre code utilise ce nom de domaine complet, vous pouvez exécuter la commande ping depuis java et analyser les résultats à l'adresse suivante: http://www.java.com/support. moins comme mesure temporaire.

0

Super réponse tardive, peut-être qu'il aidera le prochain voyageur.

InetAddress.getLocalHost().getCanonicalHostName() 

Ceci renvoie le FQDN - Ma version JVM est 1.8.0_144

Je trouve ce rapport de bogue qui pourrait http://bugs.java.com/view_bug.do?bug_id=7166687 JDK expliquer pourquoi il y a tant de confusion.

InetAddress.getLocalHost().getHostName() 

Ceci retourne juste le nom d'hôte maintenant.

Questions connexes