2011-09-01 9 views
5

Sto cercando di ottenere il nome FQDN di una macchina Windows nel mio dominio, utilizzando il codice Java.Ottenere FQDN in Java

Ho provato il InetAddress.getByName("machine-1").getCanonicalHostName() ma restituisce solo il nome della macchina.

D'altra parte se faccio il ping "machine-1" ottengo il nome di dominio completo.

Sai come si fa?

+0

Mi chiedevo, se si imposta una voce in etc/hosts di Windows il tuo codice funziona? – Cratylus

risposta

2

La semplice risposta è che ciò che suggerisci funziona se possibile.

L'API dichiara che restituirà il nome FQDN se possibile. Questo dipende dalla configurazione del sistema.

Il codice che pubblicate funziona per me su un computer con dominio Windows, ma non posso dire perché non lo farebbe per voi.

Se non si riesce a modificare la configurazione della macchina/dominio tale che Java può raccoglierlo, ed è essenziale per il codice per utilizzare quel nome di dominio completo, si potrebbe ricorrere alla esecuzione del comando ping da Java e analizzare i risultati al almeno come misura temporanea.

0

Super risposta in ritardo, forse aiuterà il prossimo viaggiatore.

InetAddress.getLocalHost().getCanonicalHostName() 

Ciò restituirà il nome di dominio completo - La mia versione JVM è 1.8.0_144

ho trovato questo bug report JDK http://bugs.java.com/view_bug.do?bug_id=7166687 che potrebbe spiegare perché c'è tanta confusione.

InetAddress.getLocalHost().getHostName() 

Questo restituisce solo il nome host ora.

Problemi correlati