2011-09-01 13 views
5

Estoy tratando de obtener el FQDN de una máquina de Windows en mi dominio, utilizando el código de Java.Obtener FQDN en Java

He intentado el InetAddress.getByName("machine-1").getCanonicalHostName() pero solo devuelve el nombre de la máquina.

Por otro lado, si hago ping a "machine-1" obtengo el nombre de dominio completo.

¿Sabes cómo hacerlo?

+0

Me preguntaba, si estableces una entrada en el etc/hosts de Windows ¿funciona tu código? – Cratylus

Respuesta

2

La respuesta simple es que lo que sugieres funciona si puede.

La API indica que devolverá el FQDN si puede. Esto depende de la configuración del sistema.

El código que publica funciona para mí en una máquina de dominio de Windows, pero no puedo decir por qué no lo haría para usted.

Si no puede modificar la configuración de máquina/dominio para que java pueda recogerla, y es esencial que su código use ese FQDN, puede recurrir a ejecutar el comando ping desde java y analizar los resultados en al menos como una medida temporal.

0

Súper tardía respuesta, tal vez ayudará al próximo viajero.

InetAddress.getLocalHost().getCanonicalHostName() 

Esto devolverá el FQDN - Mi versión de la JVM es 1.8.0_144

me encontré con este informe error de JDK http://bugs.java.com/view_bug.do?bug_id=7166687 lo que podría explicar por qué hay tanta confusión.

InetAddress.getLocalHost().getHostName() 

Esto devuelve simplemente el nombre de host ahora.