Полное имя машины Java с / etc / hosts - PullRequest
6 голосов
/ 18 мая 2011

Я пытаюсь получить полное имя моей машины (Windows 7 x64) в Java.На моей машине я обновил файл c: \ Windows \ system32 \ drivers \ etc \ hosts так, что в нем есть такая запись:

10.44.2.167 myserver myserver.domain.com

Все наши системы имеют запись в \ etc\ hosts-файл (в указанном выше формате), который я не могу изменить.

Следующий код всегда возвращает «myserver», и мне никогда не удается получить полностью определенное имя.

InetAddress addr = InetAddress.getLocalHost();
String fqName = addr.getCanonicalHostName();

Какя могу достичь этого в Java?

Спасибо,

Shreyas

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

из 'man hosts' / etc / hosts (или эквивалент для windows) имеет следующий формат:

ip_address  fully_qualified_name   aliases

, поэтому в вашем случае файл hosts будет выглядеть так:* Когда Java выполняет поиск хоста, если в / etc / hosts есть запись, она будет захватывать первое имя_хоста (не псевдоним)

2 голосов
/ 18 мая 2011

Быстрый и грязный способ сделать это :

try {
InetAddress addr = InetAddress.getLocalHost();

// Get IP Address
byte[] ipAddr = addr.getAddress();

// Get hostname
String hostname = addr.getHostName();
} catch (UnknownHostException e) {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...