Spec-Zone.ru › OpenJDK 25

Класс Inet4Address

java.lang.Object
java.net.InetAddress
java.net.Inet4Address
Все реализуемые интерфейсы:
Serializable
public final class Inet4Address extends InetAddress
Этот класс представляет адрес протокола Интернета версии 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 использовалось также как поле области действия многоадресной рассылки: 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

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/Inet4Address.html

Spec-Zone.ru

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