ejemplo - Creando objeto InetAddress en Java
inetaddress java ejemplo (5)
Estoy tratando de convertir una dirección especificada por un número de IP o un nombre, tanto en String (es decir, localhost
o 127.0.0.1
), en un objeto InetAdress . No hay constructor, sino métodos estáticos que devuelven una dirección InetAddress . Entonces, si recibo un nombre de host, no es un problema, pero ¿qué sucede si obtengo el número de IP? Hay un método que obtiene byte [], pero no estoy seguro de cómo me puede ayudar. Todos los otros métodos obtienen el nombre de host.
Debería poder utilizar getByName o getByAddress .
El nombre de host puede ser un nombre de máquina, como "java.sun.com", o una representación textual de su dirección IP
InetAddress addr = InetAddress.getByName("127.0.0.1");
El método que toma una matriz de bytes se puede usar así:
byte[] ipAddr = new byte[]{127, 0, 0, 1};
InetAddress addr = InetAddress.getByAddress(ipAddr);
Desde la API para InetAddress
El nombre de host puede ser un nombre de máquina, como "java.sun.com", o una representación textual de su dirección IP. Si se proporciona una dirección IP literal, solo se comprueba la validez del formato de dirección.
El api es bastante fácil de usar.
// Lookup the dns, if the ip exists.
if (!ip.isEmpty()) {
InetAddress inetAddress = InetAddress.getByName(ip);
dns = inetAddress.getCanonicalHostName();
}
InetAddress.getByName también funciona para la dirección IP.
Desde el JavaDoc
El nombre de host puede ser un nombre de máquina, como "java.sun.com", o una representación textual de su dirección IP. Si se proporciona una dirección IP literal, solo se comprueba la validez del formato de dirección.
ip = InetAddress.getByAddress(new byte[] {
(byte)192, (byte)168, (byte)0, (byte)102}
);