Класс 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 создаётся таким образом, числовой scope-id определяется в момент создания объекта путём запроса соответствующего NetworkInterface.

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

С:
1.4
См. также:
Сериализованная форма

Методы

Модификатор и тип Метод Описание
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 адресом 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, если адрес не является адресом одноадресной локальной связи.

isSiteLocalAddress

public boolean isSiteLocalAddress()

Вспомогательная процедура для проверки, является ли InetAddress адресом локальной сети.

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

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, 2020, 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/11/docs/api/java.base/java/net/Inet6Address.html

Spec-Zone .ru
спецификации, руководства, описания, API