Spec-Zone.ru › OpenJDK 21

Класс Inet6Address

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

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

Текстовое представление адреса 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-мапированный адрес
В формате ::ffff:w.x.y.z, этот адрес IPv6 используется для представления адреса IPv4. Он позволяет нативному приложению использовать ту же структуру данных адреса, а также тот же сокет при общении с узлами IPv4 и IPv6.

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

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

Текстовое представление адресов IPv6, как описано выше, может быть расширено для указания адресов IPv6 с областью действия. Это расширение базовой архитектуры адресации описано в [draft-ietf-ipngwg-scoping-arch-04.txt].

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

Общий формат для указания scope_id следующий:

Адрес IPv6%scope_id

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

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

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

С:
1.4
Внешние спецификации
  • RFC 2373: Архитектура адресации IP версии 6
См. также:
  • Сериализованная форма

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

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

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

getAllByName, getByAddress, getByAddress, getByName, getCanonicalHostName, getHostName, getLocalHost, getLoopbackAddress, isReachable, isReachable, toString

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

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

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

getByAddress

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

getByAddress

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

isMulticastAddress

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

isAnyLocalAddress

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

isLoopbackAddress

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

isLinkLocalAddress

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

isSiteLocalAddress

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

isMCGlobal

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

isMCNodeLocal

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

isMCLinkLocal

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

isMCSiteLocal

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

isMCOrgLocal

public boolean isMCOrgLocal()
Утилитарная процедура проверки, имеет ли адрес групповой рассылки область действия организации.
Переопределяет:
isMCOrgLocal в классе InetAddress
Возвращает:
значение, указывающее, имеет ли адрес область действия организации, 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(java.lang.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.
Возвращает:
значение, указывающее, является ли InetAddress совместимым с IPv4 адресом IPv6; или false, если адрес является IPv4-адресом.

© 1993, 2023, 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/21/docs/api/java.base/java/net/Inet6Address.html

Spec-Zone.ru

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