Получить полное доменное имя в Java - PullRequest
5 голосов
/ 01 сентября 2011

Я пытаюсь получить полное доменное имя машины Windows в моем домене, используя код Java.

Я пробовал InetAddress.getByName("machine-1").getCanonicalHostName(), но возвращает только имя машины.

Нас другой стороны, если я пингую "machine-1", я получаю полностью доменное имя.

Вы знаете, как это сделать?

Ответы [ 2 ]

2 голосов
/ 01 сентября 2011

Простой ответ: если вы можете, то, что вы предлагаете, работает.

API заявляет, что вернет полное доменное имя, если сможет. Это зависит от конфигурации системы.

Код, который вы публикуете, работает для меня на компьютере с доменом Windows, но я не могу сказать, почему он не подходит для вас.

Если вы не можете изменить конфигурацию компьютера / домена так, чтобы java мог подобрать ее, и для вашего кода важно использовать это полное доменное имя, вы можете прибегнуть к выполнению команды ping из java и проанализировать результаты как минимум в качестве временной меры.

0 голосов
/ 23 августа 2017

Супер поздний ответ, возможно, он поможет следующему путешественнику.

InetAddress.getLocalHost().getCanonicalHostName() 

Это вернет полное доменное имя. Моя версия JVM - 1.8.0_144

.

Я нашел этот отчет об ошибке JDK http://bugs.java.com/view_bug.do?bug_id=7166687, который может объяснить, почему так много путаницы.

InetAddress.getLocalHost().getHostName()

Теперь возвращается только имя хоста.

...