Подтвердить что ты не робот

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

Я пытаюсь преобразовать адрес, указанный IP-номером или именем, как в String (т.е. localhost, так и 127.0.0.1), в объект InetAdress. Нет конструктора, а скорее статических методов, возвращающих InetAddress. Поэтому, если я получаю имя хоста, это не проблема, но что, если я получу номер IP? Там один метод, который получает байт [], но я не уверен, как это может мне помочь. Все остальные методы получают имя хоста.

Документация API InetAddress

4b9b3361

Ответ 1

Вы должны иметь возможность использовать 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);

Ответ 2

Из API для InetAddress

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

Ответ 3

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

Ответ 4

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

Из JavaDoc

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

Ответ 5

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

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