Я пытаюсь преобразовать адрес, указанный IP-номером или именем, как в String (т.е. localhost
, так и 127.0.0.1
), в объект InetAdress. Нет конструктора, а скорее статических методов, возвращающих InetAddress. Поэтому, если я получаю имя хоста, это не проблема, но что, если я получу номер IP? Там один метод, который получает байт [], но я не уверен, как это может мне помочь. Все остальные методы получают имя хоста.
Создание объекта InetAddress в Java
Ответ 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();
}