¿Dirección IP a Nombre de host en Java?
Mi archivo hosts (C:\WINDOWS\system32\drivers\etc\hosts) tiene un montón de direcciones IP para asignar nombres de host:
# 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 al nombre de HOST 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"
4 answers
Probé el código de aquí y funciona. A saber:
InetAddress addr = InetAddress.getByName("192.168.190.62");
String host = addr.getHostName();
System.out.println(host);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-30 13:50:49
Hay métodos en la InetAddress
clase para eso. Creo que tú también querrás getHostName
o getCanonicalHostName
, dependiendo de su necesidad.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-27 07:30:02
Puedes probar con este código.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);
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-10 14:17:29
Esto funciona ya que los javadocs solo dicen local cuando no se necesita una búsqueda inversa: Si se proporciona una dirección IP literal, solo se comprueba la validez del formato de dirección.
Si alguien conoce una manera sin usar tarros de terceros para hacer la búsqueda remota...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-03 15:44:44