IP-адрес для имени хоста в Java?
мой файл hosts (C:WINDOWSsystem32driversetchosts) имеет кучу 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
Я пытаюсь найти способ конвертировать из IPAddress в имя хоста программно через API Java.
псевдокод:
IPAddress ip = new IPAddress("192.168.190.62");
String host = ip.getHost();
System.out.println(host); //prints "access-console"
4 ответов
я попробовал код здесь и это работает. А именно:
InetAddress addr = InetAddress.getByName("192.168.190.62");
String host = addr.getHostName();
System.out.println(host);
есть методы, в InetAddress
класс для этого. Я думаю, вы захотите либо getHostName
или getCanonicalHostName
, в зависимости от ваших потребностей.
вы можете попробовать этот код.Я думаю, что это полезно
import java.net.InetAddress;
import java.net.UnknownHostException;
public class IpTest {
public static void main(String args[]) throws UnknownHostException {
InetAddress addr = InetAddress.getLocalHost();
String ipAddress = addr.getHostAddress();
System.out.println("IP address of localhost : " + ipAddress);
String hostname = addr.getHostName();
System.out.println("Name of hostname : " + hostname);
}
}
Это работает, поскольку javadocs говорят только локально, когда не требуется обратный поиск: Если указан литеральный IP-адрес, проверяется только действительность формата адреса.
Если кто-то знает способ без использования сторонних банок для удаленного поиска...