Spec-Zone.ru › OpenJDK 27

Класс Inet4Address

java.lang.Object
java.net.InetAddress
java.net.Inet4Address
Все реализуемые интерфейсы:
Serializable
public final class Inet4Address extends InetAddress
Этот класс представляет адрес Internet Protocol версии 4 (IPv4). Определён в RFC 790: Назначенные номера, RFC 1918: Распределение адресов для частных сетей и RFC 2365: IP-многоадресная рассылка с административной областью действия

Текстовое представление IPv4-адресов

Текстовое представление IPv4-адреса, используемое в качестве входных данных методов, имеет один из следующих форматов:
  • d.d.d.d
  • d.d.d
  • d.d
  • d

Если указаны четыре части, каждая из них интерпретируется как байт данных и назначается слева направо четырём байтам IPv4-адреса.

Если указан адрес из трёх частей, последняя часть интерпретируется как 16-битное значение и помещается в два крайних правых байта сетевого адреса. Это делает формат из трёх частей удобным для указания сетевых адресов класса B в виде 128.net.host.

Если указан адрес из двух частей, последняя часть интерпретируется как 24-битное значение и помещается в три крайних правых байта сетевого адреса. Это делает формат из двух частей удобным для указания сетевых адресов класса A в виде net.host.

Если указана только одна часть, её значение непосредственно сохраняется в сетевом адресе без перестановки байтов.

Например, методы ofLiteral(String) и InetAddress.getByName(String), способные анализировать текстовые представления IPv4-адресов, поддерживают следующие десятичные форматы:

 // Dotted-decimal 'd.d.d.d' form with four part address literal
 InetAddress.getByName("007.008.009.010"); // ==> /7.8.9.10
 InetAddress.getByName("127.0.1.1");       // ==> /127.0.1.1

 // Dotted-decimal 'd.d.d' form with three part address literal,
 // the last part is placed in the right most two bytes
 // of the constructed address
 InetAddress.getByName("127.0.257"); // ==> /127.0.1.1

 // Dotted-decimal 'd.d' form with two part address literal,
 // the last part is placed in the right most three bytes
 // of the constructed address
 Inet4Address.ofLiteral("127.257"); // ==> /127.0.1.1

 // 'd' form with one decimal value that is stored directly in
 // the constructed address bytes without any rearrangement
 Inet4Address.ofLiteral("02130706689"); // ==> /127.0.1.1

Приведённые выше форматы соответствуют «строгому» синтаксису, допускающему только десятичную запись. Кроме того, метод ofPosixLiteral(String) реализует совместимый с POSIX inet_addr алгоритм «нестрогого» разбора, допускающий восьмеричные и шестнадцатеричные сегменты адреса. См. RFC 6943: Проблемы сравнения идентификаторов в целях безопасности. За исключением Inet4Address.ofPosixLiteral(String), все методы поддерживают только строгий разбор десятичных чисел.

Методы, возвращающие текстовое представление в качестве выходного значения, используют первый формат, то есть строку с адресом, разделённым точками и записанным в строгой десятичной нотации.

Область действия многоадресного адреса

Исторически поле TTL IPv4 в заголовке IP также использовалось как поле области действия многоадресной рассылки: TTL, равный 0, означает локальный узел, 1 — локальную сеть, значения до 32 включительно — локальный сайт, до 64 — локальный регион, до 128 — локальный континент, а до 255 — глобальную область действия. Однако предпочтительно использовать административное ограничение области действия. См. RFC 2365: IP-многоадресная рассылка с административной областью действия
Начиная с версии:
1.4
Внешние спецификации
  • RFC 1918: Распределение адресов для частных сетей
  • RFC 2365: IP-многоадресная рассылка с административной областью действия
  • RFC 790: Назначенные номера
  • RFC 6943: Проблемы сравнения идентификаторов в целях безопасности
См. также:
  • Сериализованная форма

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object obj)
Сравнивает этот объект с указанным объектом.
byte[] getAddress()
Возвращает необработанный IP-адрес этого объекта InetAddress.
String getHostAddress()
Возвращает IP-адрес в текстовом представлении.
int hashCode()
Возвращает хеш-код этого IP-адреса.
boolean isAnyLocalAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом-шаблоном.
boolean isLinkLocalAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом локальной сети.
boolean isLoopbackAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом обратной петли.
boolean isMCGlobal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес глобальную область действия.
boolean isMCLinkLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия локальной сети.
boolean isMCNodeLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия локального узла.
boolean isMCOrgLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия организации.
boolean isMCSiteLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия сайта.
boolean isMulticastAddress()
Вспомогательный метод для проверки, является ли InetAddress IP-адресом многоадресной рассылки.
boolean isSiteLocalAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом локального сайта.
static Inet4Address ofLiteral(String ipv4AddressLiteral)
Создаёт Inet4Address на основе предоставленного текстового представления IPv4-адреса.
static Inet4Address ofPosixLiteral(String posixIPAddressLiteral)
Создаёт Inet4Address на основе предоставленного текстового представления IPv4-адреса в формате, совместимом с POSIX inet_addr.

Методы, объявленные в классе InetAddress

getAllByName, getByAddress, getByAddress, getByName, getCanonicalHostName, getHostName, getLocalHost, getLoopbackAddress, isReachable, isReachable, toString
Модификатор и тип Метод Описание
static InetAddress[] getAllByName(String host)
По имени узла возвращает массив его IP-адресов, используя общесистемный резолвер.
static InetAddress getByAddress(byte[] addr)
Возвращает объект InetAddress по необработанному IP-адресу.
static InetAddress getByAddress(String host, byte[] addr)
Создаёт InetAddress на основе предоставленных имени узла и IP-адреса.
static InetAddress getByName(String host)
Определяет IP-адрес узла по его имени.
String getCanonicalHostName()
Получает полное доменное имя для этого IP-адреса с помощью общесистемного резолвера.
String getHostName()
Получает имя узла для этого IP-адреса.
static InetAddress getLocalHost()
Возвращает адрес локального узла.
static InetAddress getLoopbackAddress()
Возвращает адрес обратной петли.
boolean isReachable(int timeout)
Проверяет, доступен ли этот адрес.
boolean isReachable(NetworkInterface netif, int ttl, int timeout)
Проверяет, доступен ли этот адрес.
String toString()
Преобразует этот IP-адрес в String.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать до пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного интервала реального времени.

Подробное описание методов

ofLiteral

public static Inet4Address ofLiteral(String ipv4AddressLiteral)
Создаёт Inet4Address на основе предоставленного текстового представления IPv4-адреса.

Если указанный литерал IPv4-адреса не соответствует допустимому IPv4-адресу, выбрасывается IllegalArgumentException.

Этот метод не блокирует выполнение, то есть обратный поиск не выполняется.

Параметры:
ipv4AddressLiteral — текстовое представление IPv4-адреса.
Возвращает:
объект Inet4Address без заданного имени узла, созданный на основе предоставленного литерала IPv4-адреса.
Выбрасывает:
IllegalArgumentException — если ipv4AddressLiteral невозможно разобрать как литерал IPv4-адреса.
NullPointerException — если ipv4AddressLiteral имеет значение null.
Начиная с версии:
22

ofPosixLiteral

public static Inet4Address ofPosixLiteral(String posixIPAddressLiteral)
Создаёт Inet4Address на основе предоставленного текстового представления IPv4-адреса в формате, совместимом с POSIX inet_addr.

Метод ofPosixLiteral реализует совместимый с POSIX inet_addr алгоритм разбора, допускающий восьмеричные и шестнадцатеричные сегменты адреса. "0" — префикс восьмеричных чисел, "0x" и "0X" — префиксы шестнадцатеричных чисел. Ненулевые сегменты адреса, начинающиеся с ненулевых цифр, разбираются как десятичные числа. Метод поддерживает следующие (недесятичные) форматы:

 // Dotted-quad 'x.x.x.x' form with four part address literal
 Inet4Address.ofPosixLiteral("0177.0.0.1"); // ==> /127.0.0.1
 Inet4Address.ofPosixLiteral("0x7F.0.0.1"); // ==> /127.0.0.1

 // Dotted-triple 'x.x.x' form with three part address literal,
 // the last part is placed in the rightmost two bytes
 // of the constructed address
 Inet4Address.ofPosixLiteral("0177.0.0402"); // ==> /127.0.1.2
 Inet4Address.ofPosixLiteral("0x7F.0.0x102"); // ==> /127.0.1.2

 // Dotted-double 'x.x' form with two part address literal,
 // the last part is placed in the rightmost three bytes
 // of the constructed address
 Inet4Address.ofPosixLiteral("0177.0201003"); // ==> /127.1.2.3
 Inet4Address.ofPosixLiteral("0x7F.0x10203"); // ==> /127.1.2.3
 Inet4Address.ofPosixLiteral("127.66051"); // ==> /127.1.2.3

 // Dotless 'x' form with one value that is stored directly in
 // the constructed address bytes without any rearrangement
 Inet4Address.ofPosixLiteral("0100401404"); // ==> /1.2.3.4
 Inet4Address.ofPosixLiteral("0x1020304"); // ==> /1.2.3.4
 Inet4Address.ofPosixLiteral("16909060"); // ==> /1.2.3.4

Если указанный литерал IPv4-адреса не соответствует допустимому IPv4-адресу в формате POSIX, выбрасывается IllegalArgumentException.

Этот метод не блокирует выполнение, то есть поиск имени узла не выполняется.

Примечание к API:
Этот метод возвращает результаты, отличающиеся от результатов ofLiteral(String), если параметр posixIPAddressLiteral содержит сегменты адреса с ведущими нулями. Сегмент адреса с ведущим нулём этот метод всегда разбирает как восьмеричное число, поэтому 0255 (восьмеричное) будет разобрано как 173 (десятичное). В отличие от него, Inet4Address.ofLiteral игнорирует ведущие нули, разбирает все числа как десятичные и возвращает 255. Если этот метод разберёт 0256.0256.0256.0256 (восьмеричное) и вернёт 174.174.174.174 (десятичное) в формате четырёх чисел, разделённых точками, то Inet4Address.ofLiteral выбросит IllegalArgumentException.
Параметры:
posixIPAddressLiteral — текстовое представление IPv4-адреса.
Возвращает:
объект Inet4Address без заданного имени узла, созданный на основе предоставленного литерала IPv4-адреса.
Выбрасывает:
IllegalArgumentException — если posixIPAddressLiteral невозможно разобрать как литерал IPv4-адреса.
NullPointerException — если posixIPAddressLiteral имеет значение null.
Начиная с версии:
23

isMulticastAddress

public boolean isMulticastAddress()
Вспомогательный метод для проверки, является ли InetAddress IP-адресом многоадресной рассылки. IP-адрес многоадресной рассылки относится к классу D, то есть его первые четыре бита равны 1110.
Переопределяет:
isMulticastAddress в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли InetAddress IP-адресом многоадресной рассылки

isAnyLocalAddress

public boolean isAnyLocalAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом-шаблоном.
Переопределяет:
isAnyLocalAddress в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли InetAddress адресом-шаблоном.

isLoopbackAddress

public boolean isLoopbackAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом обратной петли.
Переопределяет:
isLoopbackAddress в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли InetAddress адресом обратной петли; в противном случае — false.

isLinkLocalAddress

public boolean isLinkLocalAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом локальной сети.
Переопределяет:
isLinkLocalAddress в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли InetAddress адресом локальной сети; false, если адрес не является одноадресным адресом локальной сети.

isSiteLocalAddress

public boolean isSiteLocalAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом локального сайта.
Переопределяет:
isSiteLocalAddress в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли InetAddress адресом локального сайта; false, если адрес не является одноадресным адресом локального сайта.

isMCGlobal

public boolean isMCGlobal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес глобальную область действия.
Переопределяет:
isMCGlobal в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли адрес многоадресным адресом с глобальной областью действия; false, если область действия не глобальная или адрес не является многоадресным

isMCNodeLocal

public boolean isMCNodeLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия локального узла.
Переопределяет:
isMCNodeLocal в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли адрес многоадресным адресом с областью действия локального узла; false, если область действия не локальная для узла или адрес не является многоадресным

isMCLinkLocal

public boolean isMCLinkLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия локальной сети.
Переопределяет:
isMCLinkLocal в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли адрес многоадресным адресом с областью действия локальной сети; false, если область действия не локальная для сети или адрес не является многоадресным

isMCSiteLocal

public boolean isMCSiteLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия сайта.
Переопределяет:
isMCSiteLocal в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли адрес многоадресным адресом с областью действия сайта; false, если область действия не локальная для сайта или адрес не является многоадресным

isMCOrgLocal

public boolean isMCOrgLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия организации.
Переопределяет:
isMCOrgLocal в классе InetAddress
Возвращает:
значение boolean, указывающее, является ли адрес многоадресным адресом с областью действия организации; false, если область действия не локальная для организации или адрес не является многоадресным

getAddress

public byte[] getAddress()
Возвращает необработанный IP-адрес этого объекта InetAddress. Результат представлен в сетевом порядке байтов: старший байт адреса находится в getAddress()[0].
Переопределяет:
getAddress в классе InetAddress
Возвращает:
необработанный IP-адрес этого объекта.

getHostAddress

public String getHostAddress()
Возвращает IP-адрес в текстовом представлении.
Переопределяет:
getHostAddress в классе InetAddress
Возвращает:
необработанный IP-адрес в виде строки.

hashCode

public int hashCode()
Возвращает хеш-код этого IP-адреса.
Переопределяет:
hashCode в классе InetAddress
Возвращает:
значение хеш-кода для этого IP-адреса.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

equals

public boolean equals(Object obj)
Сравнивает этот объект с указанным объектом. Результат равен true тогда и только тогда, когда аргумент не равен null и представляет тот же IP-адрес, что и этот объект.

Два экземпляра InetAddress представляют один и тот же IP-адрес, если длина возвращаемых методом getAddress массивов байтов одинакова для обоих экземпляров и все элементы массивов совпадают.

Переопределяет:
equals в классе InetAddress
Параметры:
obj — объект для сравнения.
Возвращает:
true, если объекты совпадают; в противном случае — false.
См. также:
  • InetAddress.getAddress()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API