2010-07-30 22 views
20

Mi archivo de hosts (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts) tiene un montón de direcciones IP para acoger las asignaciones de nombres:Dirección IP al nombre de host en Java?

# 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 

Estoy tratando de encontrar una manera de convertir de una Dirección IP a el HostName mediante programación a través de las API de Java.

Pseudocódigo:

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

Respuesta

43

Probé el código de here y funciona. A saber:

InetAddress addr = InetAddress.getByName("192.168.190.62"); 
    String host = addr.getHostName(); 
    System.out.println(host); 
1

Esto funciona como los javadocs dicen que sólo local cuando no se necesita una búsqueda inversa: Si se suministra una dirección IP literal, sólo la validez del formato de dirección está marcada.

Si alguien sabe una manera sin usar frascos de terceros para hacer la búsqueda a distancia ...

2

se puede tratar con este code.I creo que es útil

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); 
    } 
} 
Cuestiones relacionadas