Spec-Zone.ru › OpenJDK 8

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

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

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

    ::FFFF:d

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

    ::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[]), за исключением того, что scope_id IPv6 установлен на заданное числовое значение.

static Inet6Address getByAddress(String host, byte[] addr, NetworkInterface nif)

Создаёт Inet6Address точно так же, как InetAddress.getByAddress(String,byte[]), за исключением того, что scope_id IPv6 установлен на значение, соответствующее заданному интерфейсу для типа адреса, указанного в addr.

String getHostAddress()

Возвращает строковое представление IP-адреса.

NetworkInterface getScopedInterface()

Возвращает интерфейс с областью действия, если этот экземпляр был создан с интерфейсом с областью действия.

int getScopeId()

Возвращает числовой scopeId, если этот экземпляр связан с интерфейсом.

int hashCode()

Возвращает хэш-код для этого IP-адреса.

boolean isAnyLocalAddress()

Утилитарная функция для проверки, является ли InetAddress адресом с подстановкой звёздочки.

boolean isIPv4CompatibleAddress()

Утилитарная функция для проверки, является ли InetAddress адресом IPv6, совместимым с IPv4.

boolean isLinkLocalAddress()

Утилитарная функция для проверки, является ли InetAddress адресом link local.

boolean isLoopbackAddress()

Утилитарная функция для проверки, является ли InetAddress адресом loopback.

boolean isMCGlobal()

Утилитарная функция для проверки, имеет ли адрес мультикаста глобальную область действия.

boolean isMCLinkLocal()

Утилитарная функция для проверки, имеет ли адрес мультикаста область действия link.

boolean isMCNodeLocal()

Утилитарная функция для проверки, имеет ли адрес мультикаста область действия node.

boolean isMCOrgLocal()

Утилитарная функция для проверки, имеет ли адрес мультикаста область действия организации.

boolean isMCSiteLocal()

Утилитарная функция для проверки, имеет ли адрес мультикаста область действия site.

boolean isMulticastAddress()

Утилитарная функция для проверки, является ли InetAddress адресом IP мультикаста.

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-адресом для групповой рассылки
С:
JDK1.1

isAnyLocalAddress

public boolean isAnyLocalAddress()

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

Переопределяет:
isAnyLocalAddress в классе InetAddress
Возвращает:
значение, указывающее, является ли Inetaddress универсальным адресом.
С:
1.4

isLoopbackAddress

public boolean isLoopbackAddress()

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

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

isLinkLocalAddress

public boolean isLinkLocalAddress()

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

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

isSiteLocalAddress

public boolean isSiteLocalAddress()

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

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

isMCGlobal

public boolean isMCGlobal()

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

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

isMCNodeLocal

public boolean isMCNodeLocal()

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

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

isMCLinkLocal

public boolean isMCLinkLocal()

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

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

isMCSiteLocal

public boolean isMCSiteLocal()

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

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

isMCOrgLocal

public boolean isMCOrgLocal()

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

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

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-адресом.
С:
1.4

© 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.

Spec-Zone.ru

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