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-адрес, проверяется только действительность формата адреса.

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