Создания InetAddress объекта в Java


Я пытаюсь преобразовать адрес, заданный IP-адрес или имя в строке (т. е. localhost или 127.0.0.1), в InetAdress

5 60

5 ответов:

вы должны быть в состоянии использовать getByName или getByAddress.

имя хоста может быть либо машиной название, такое как "java.sun.com" или текстовое представление его IP адрес

InetAddress addr = InetAddress.getByName("127.0.0.1");

метод, который принимает массив байтов может быть использован следующим образом:

byte[] ipAddr = new byte[]{127, 0, 0, 1};
InetAddress addr = InetAddress.getByAddress(ipAddr);

из API для InetAddress

имя хоста может быть либо машиной название, такое как "java.sun.com" или текстовое представление его IP адрес. Если литеральный IP-адрес поставленный, только действительность проверяется формат адреса.

ip = InetAddress.getByAddress(new byte[] {
        (byte)192, (byte)168, (byte)0, (byte)102}
);

InetAddress.getByName также работает для ip-адреса.

из JavaDoc

имя хоста может быть либо машиной название, такое как "java.sun.com" или текстовое представление его IP адрес. Если литеральный IP-адрес поставленный, только действительность проверяется формат адреса.

api довольно прост в использовании.

// Lookup the dns, if the ip exists.
 if (!ip.isEmpty()) {
     InetAddress inetAddress = InetAddress.getByName(ip);
     dns = inetAddress.getCanonicalHostName(); 
 }