IP-адрес для имени хоста в Java? - PullRequest
22 голосов
/ 30 июля 2010

Файл моего хоста (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts) содержит несколько сопоставлений IP-адресов и имен хостов:

# Switches
192.168.200.254       sw-con-ctrl
192.168.201.253    sw-con-ctrl-2
192.168.201.254       sw-con-ctrl-1
# 192.168.188.1       sw-con-ctrl-blk-1
# 192.168.189.1       sw-con-ctrl-red
192.168.190.62        access-console

# Routers
192.168.21.1          rtr1
192.168.22.1          rtr2

Я пытаюсь найти способ конвертировать изIP-адрес для HostName программно через API Java.

Псевдокод:

IPAddress ip = new IPAddress("192.168.190.62");
String host = ip.getHost();
System.out.println(host);  //prints "access-console"

Ответы [ 3 ]

49 голосов
/ 30 июля 2010

Я попробовал код из здесь , и он работает. А именно:

  InetAddress addr = InetAddress.getByName("192.168.190.62");
  String host = addr.getHostName();
  System.out.println(host);
2 голосов
/ 30 июля 2010

Для этого в классе InetAddress есть методы. Я думаю, вы захотите либо getHostName, либо getCanonicalHostName, в зависимости от ваших потребностей.

1 голос
/ 03 февраля 2013

Это работает, поскольку Javadoc говорят только локально, когда обратный поиск не требуется: если указан буквальный IP-адрес, проверяется только действительность формата адреса.

Если кто-то знает способ без использования сторонних jar-файлов для удаленного поиска ...

...