Spec-Zone.ru › OpenJDK 27

Класс Inet6Address

java.lang.Object
java.net.InetAddress
java.net.Inet6Address
Все реализуемые интерфейсы:
Serializable
public final class Inet6Address extends InetAddress
Этот класс представляет адрес интернет-протокола версии 6 (IPv6). Определён в RFC 2373: архитектура адресации IP версии 6.

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

Текстовое представление адреса IPv6, используемое в качестве входных данных методов, может иметь одну из следующих форм:
  1. Предпочтительная форма — x:x:x:x:x:x:x:x, где «x» — шестнадцатеричные значения восьми 16-разрядных частей адреса. Это полная форма. Например,

    • 1080:0:0:0:8:800:200C:417A

    Обратите внимание, что начальные нули в отдельном поле указывать необязательно. Однако в каждом поле должна быть хотя бы одна цифра, за исключением случаев, описанных ниже.

  2. Из-за некоторых способов выделения адресов IPv6 определённых типов часто встречаются адреса с длинными последовательностями нулевых битов. Чтобы упростить запись адресов, содержащих нулевые биты, предусмотрен специальный синтаксис для сжатия нулей. «::» обозначает несколько групп из 16 нулевых битов. В адресе «::» может встречаться только один раз. «::» также можно использовать для сжатия начальных и/или конечных нулей адреса. Например,

    • 1080::8:800:200C:417A
  3. Альтернативная форма, которая иногда удобнее при работе в смешанной среде с узлами IPv4 и IPv6, — x:x:x:x:x:x:d.d.d.d, где «x» — шестнадцатеричные значения шести старших 16-разрядных частей адреса, а «d» — десятичные значения четырёх младших 8-разрядных частей адреса в стандартном представлении IPv4, например:

    • ::FFFF:129.144.52.38
    • ::129.144.52.38

    где «::FFFF:d.d.d.d» и «::d.d.d.d» — соответственно общие формы IPv4-отображённого адреса IPv6 и IPv4-совместимого адреса IPv6. Обратите внимание, что часть IPv4 должна иметь форму «d.d.d.d». Следующие формы недопустимы:

    • ::FFFF:d.d.d
    • ::FFFF:d.d
    • ::d.d.d
    • ::d.d

    Следующая форма:

    • ::FFFF:d

    допустима, однако это нетрадиционное представление IPv4-совместимого адреса IPv6,

    • ::255.255.0.d

    тогда как «::d» соответствует общему адресу IPv6 «0:0:0:0:0:0:0:d».

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

Специальный адрес IPv6

IPv4-отображённый адрес
Этот адрес IPv6 вида ::ffff:w.x.y.z используется для представления адреса IPv4. Он позволяет программе использовать одну и ту же структуру данных адреса, а также один и тот же сокет для обмена данными с узлами IPv4 и IPv6.

В InetAddress и Inet6Address он используется для внутреннего представления и не имеет функционального назначения. Java никогда не возвращает IPv4-отображённый адрес. Эти классы принимают IPv4-отображённый адрес в качестве входных данных как в виде массива байтов, так и в текстовом представлении. Однако он будет преобразован в адрес IPv4.

Текстовое представление адресов IPv6 с областью действия

Описанное выше текстовое представление адресов IPv6 можно расширить, чтобы указывать адреса IPv6 с областью действия. Это расширение базовой архитектуры адресации описано в RFC 4007: архитектура адресации IPv6 с областью действия.

Поскольку адреса локального канала и локального сайта не являются глобальными, у разных хостов может быть один и тот же адрес назначения, доступный через разные интерфейсы одной и той же исходной системы. В этом случае говорят, что исходная система подключена к нескольким зонам одной области действия. Чтобы однозначно указать предполагаемую зону назначения, к адресу IPv6 можно добавить идентификатор зоны (или scope_id).

Общий формат указания scope_id:

IPv6-адрес%scope_id

IPv6-адрес — это литерал IPv6, описанный выше. scope_id указывает интерфейс локальной системы и может быть задан двумя способами.

  1. В виде числового идентификатора. Это должно быть положительное целое число, идентифицирующее конкретный интерфейс и область действия в соответствии с системой. Обычно числовые значения можно определить с помощью средств администрирования системы. Для каждого интерфейса может быть задано несколько значений — по одному для каждой области действия. Если область действия не указана, используется значение по умолчанию, равное нулю.
  2. В виде строки. Это должна быть точная строка, возвращаемая методом NetworkInterface.getName() для соответствующего интерфейса. При создании Inet6Address таким способом числовой идентификатор области действия определяется во время создания объекта путём запроса соответствующего NetworkInterface.

Обратите также внимание, что числовое значение scope_id можно получить из экземпляров Inet6Address, возвращённых классом NetworkInterface. Это позволяет определить текущие идентификаторы областей действия, настроенные в системе.

Текстовое представление адресов IPv6 в качестве входных данных методов

Методы InetAddress и Inet6Address, принимающие текстовое представление адреса IPv6, допускают заключение этого представления в квадратные скобки. Например:

 // The full IPv6 form
 InetAddress.getByName("1080:0:0:0:8:800:200C:417A");   // ==> /1080:0:0:0:8:800:200c:417a
 InetAddress.getByName("[1080:0:0:0:8:800:200C:417A]"); // ==> /1080:0:0:0:8:800:200c:417a

 // IPv6 scoped address with scope-id as string
 Inet6Address.ofLiteral("fe80::1%en0");   // ==> /fe80:0:0:0:0:0:0:1%en0
 Inet6Address.ofLiteral("[fe80::1%en0]"); // ==> /fe80:0:0:0:0:0:0:1%en0
Начиная с версии:
1.4
Внешние спецификации
  • RFC 2373: архитектура адресации IP версии 6
  • RFC 4007: архитектура адресации IPv6 с областью действия
См. также:
  • Сериализованная форма

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

Модификатор и тип Метод Описание
boolean equals(Object obj)
Сравнивает этот объект с указанным объектом.
byte[] getAddress()
Возвращает необработанный IP-адрес этого объекта InetAddress.
static Inet6Address getByAddress(String host, byte[] addr, int scope_id)
Создаёт Inet6Address точно так же, как InetAddress.getByAddress(String,byte[]), за исключением того, что IPv6 scope_id устанавливается в указанное числовое значение.
static Inet6Address getByAddress(String host, byte[] addr, NetworkInterface nif)
Создаёт Inet6Address точно так же, как InetAddress.getByAddress(String,byte[]), за исключением того, что IPv6 scope_id устанавливается в значение, соответствующее указанному интерфейсу для типа адреса, заданного в addr.
String getHostAddress()
Возвращает строку IP-адреса в текстовом представлении.
NetworkInterface getScopedInterface()
Возвращает интерфейс с областью действия, если этот экземпляр был создан с таким интерфейсом.
int getScopeId()
Возвращает числовой scopeId, если этот экземпляр связан с интерфейсом.
int hashCode()
Возвращает хеш-код этого IP-адреса.
boolean isAnyLocalAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом-шаблоном.
boolean isIPv4CompatibleAddress()
Вспомогательный метод для проверки, является ли InetAddress IPv4-совместимым адресом IPv6.
boolean isLinkLocalAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом локального канала.
boolean isLoopbackAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом обратной связи.
boolean isMCGlobal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес глобальную область действия.
boolean isMCLinkLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия канала.
boolean isMCNodeLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия узла.
boolean isMCOrgLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия организации.
boolean isMCSiteLocal()
Вспомогательный метод для проверки, имеет ли многоадресный адрес область действия сайта.
boolean isMulticastAddress()
Вспомогательный метод для проверки, является ли InetAddress IP-адресом многоадресной рассылки. Начальная последовательность 11111111 указывает, что адрес является многоадресным.
boolean isSiteLocalAddress()
Вспомогательный метод для проверки, является ли InetAddress адресом локального сайта.
static InetAddress ofLiteral(String ipv6AddressLiteral)
Создаёт InetAddress на основе предоставленного текстового представления адреса IPv6.

Методы, объявленные в классе 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()
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.

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

getByAddress

public static Inet6Address getByAddress(String host, byte[] addr, NetworkInterface nif) throws UnknownHostException
Создаёт Inet6Address точно так же, как InetAddress.getByAddress(String,byte[]), за исключением того, что IPv6 scope_id устанавливается в значение, соответствующее указанному интерфейсу для типа адреса, заданного в addr. Вызов завершится ошибкой UnknownHostException, если указанному интерфейсу не назначен числовой scope_id для данного типа адреса (например, локального канала или локального сайта). Описание адресов IPv6 с областью действия см. здесь.
Параметры:
host — указанный хост
addr — необработанный IP-адрес в сетевом порядке байтов
nif — интерфейс, с которым должен быть связан этот адрес.
Возвращает:
объект Inet6Address, созданный из необработанного IP-адреса.
Выбрасывает:
UnknownHostException — если длина IP-адреса недопустима или интерфейсу не назначен числовой scope_id для данного типа адреса.
Начиная с версии:
1.5

getByAddress

public static Inet6Address getByAddress(String host, byte[] addr, int scope_id) throws UnknownHostException
Создаёт Inet6Address точно так же, как InetAddress.getByAddress(String,byte[]), за исключением того, что IPv6 scope_id устанавливается в указанное числовое значение. Значение scope_id не проверяется на соответствие какому-либо интерфейсу системы. Описание адресов IPv6 с областью действия см. здесь.
Параметры:
host — указанный хост
addr — необработанный IP-адрес в сетевом порядке байтов
scope_id — числовой scope_id адреса.
Возвращает:
объект Inet6Address, созданный из необработанного IP-адреса.
Выбрасывает:
UnknownHostException — если длина IP-адреса недопустима.
Начиная с версии:
1.5

ofLiteral

public static InetAddress ofLiteral(String ipv6AddressLiteral)
Создаёт InetAddress на основе предоставленного текстового представления адреса IPv6.

Если предоставленный литерал адреса не может представлять допустимый адрес IPv6, выбрасывается IllegalArgumentException. IllegalArgumentException также выбрасывается, если литерал адреса IPv6 с областью действия содержит идентификатор области действия, не соответствующий ни одному сетевому интерфейсу системы, или если идентификатор области действия указан в литерале IPv4-отображённого адреса IPv6.

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

Обратите внимание, что литералы адресов IPv6 также можно указывать в квадратных скобках. Кроме того, если переданный литерал представляет собой IPv4-отображённый адрес IPv6, возвращается экземпляр Inet4Address.

Параметры:
ipv6AddressLiteral — текстовое представление адреса IPv6.
Возвращает:
объект InetAddress без заданного имени хоста, созданный из предоставленного литерала адреса IPv6.
Выбрасывает:
IllegalArgumentException — если ipv6AddressLiteral не удаётся разобрать как литерал адреса IPv6.
NullPointerException — если ipv6AddressLiteral имеет значение null.
Начиная с версии:
22

isMulticastAddress

public boolean isMulticastAddress()
Вспомогательный метод для проверки, является ли InetAddress IP-адресом многоадресной рассылки. Начальная последовательность 11111111 указывает, что адрес является многоадресным.
Переопределяет:
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-адрес этого объекта.

getScopeId

public int getScopeId()
Возвращает числовой scopeId, если этот экземпляр связан с интерфейсом. Если scoped_id не задан, возвращается ноль.
Возвращает:
scopeId или ноль, если он не задан.
Начиная с версии:
1.5

getScopedInterface

public NetworkInterface getScopedInterface()
Возвращает интерфейс с областью действия, если этот экземпляр был создан с таким интерфейсом.
Возвращает:
интерфейс с областью действия или null, если он не задан.
Начиная с версии:
1.5

getHostAddress

public String getHostAddress()
Возвращает строку IP-адреса в текстовом представлении. Если экземпляр был создан с указанием идентификатора области действия, он добавляется к 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()

isIPv4CompatibleAddress

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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