Класс Inet6Address
- Все реализованные интерфейсы:
Serializable
public final class Inet6Address extends InetAddress
Текстовое представление IP-адресов
Текстовое представление адреса IPv6, используемого в качестве входных данных для методов, принимает один из следующих форматов:-
Предпочтительная форма — x:x:x:x:x:x:x:x, где 'x' — шестнадцатеричные значения восьми 16-битных частей адреса. Это полная форма. Например,
1080:0:0:0:8:800:200C:417A
Обратите внимание, что вводить ведущие нули в отдельных полях необязательно. Однако в каждом поле должен быть хотя бы один символ.
-
Из-за некоторых методов распределения определенных стилей адресов IPv6 часто встречаются адреса с длинными последовательностями нулей. Для упрощения записи адресов, содержащих нули, доступен специальный синтаксис для их сжатия. Использование "::" указывает на несколько групп из 16 нулевых битов. Двойное двоеточие "::" может встречаться только один раз в адресе. "::" также может использоваться для сжатия ведущих и/или конечных нулей в адресе. Например,
1080::8:800:200C:417A
-
Альтернативный формат, который иногда более удобен при работе с разнородной средой узлов 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 относится к интерфейсу на локальной системе и может быть указан двумя способами.
- В виде числового идентификатора. Это должно быть положительное целое число, которое идентифицирует конкретный интерфейс и область действия, как понимает система. Обычно числовые значения можно определить с помощью инструментов администрирования системы. Каждый интерфейс может иметь несколько значений, по одному для каждой области действия. Если область действия не указана, используется значение по умолчанию — ноль.
-
В виде строки. Это должна быть точная строка, возвращаемая
NetworkInterface.getName()для соответствующего интерфейса. При создании Inet6Address таким образом, числовой scope-id определяется во время создания объекта путём запроса к соответствующему NetworkInterface.
Также обратите внимание, что числовой scope_id можно получить из экземпляров Inet6Address, возвращаемых классом NetworkInterface. Это может быть использовано для определения текущих идентификаторов областей действия, настроенных в системе.
- С:
- 1.4
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает этот объект с заданным объектом. |
byte[] |
getAddress() |
Возвращает сырой IP-адрес этого InetAddress объекта. |
static Inet6Address |
getByAddress |
Создаёт Inet6Address точно так же, как InetAddress.getByAddress(String,byte[]), за исключением того, что IPv6 scope_id устанавливается в данное числовое значение. |
static Inet6Address |
getByAddress |
Создаёт 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 область действия организации. |
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
Подробное описание методов
getByAddress
public static Inet6Address getByAddress(String host, byte[] addr, NetworkInterface nif) throws UnknownHostException
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
InetAddress.getByAddress(String,byte[]), за исключением того, что идентификатор области IPv6 устанавливается в заданное числовое значение. Не проверяется, соответствует ли идентификатор области какому-либо интерфейсу в системе. См. здесь для описания адресов IPv6 с областью действия.- Параметры:
-
host- указанный хост -
addr- исходный IP-адрес в сетевом порядке байтов -
scope_id- числовой идентификатор области для адреса. - Возвращает:
- объект Inet6Address, созданный из исходного IP-адреса.
- Исключение:
-
UnknownHostException- если IP-адрес имеет незаконную длину. - С:
- 1.5
isMulticastAddress
public boolean isMulticastAddress()
- Переопределяет:
-
isMulticastAddressв классеInetAddress - Возвращает:
- значение, указывающее, является ли InetAddress IP-адресом групповой рассылки
isAnyLocalAddress
public boolean isAnyLocalAddress()
- Переопределяет:
-
isAnyLocalAddressв классеInetAddress - Возвращает:
- значение, указывающее, является ли InetAddress адресом-маской.
isLoopbackAddress
public boolean isLoopbackAddress()
- Переопределяет:
-
isLoopbackAddressв классеInetAddress - Возвращает:
- значение, указывающее, является ли InetAddress адресом обратной связи; в противном случае false.
isLinkLocalAddress
public boolean isLinkLocalAddress()
- Переопределяет:
-
isLinkLocalAddressв классеInetAddress - Возвращает:
- значение, указывающее, является ли InetAddress адресом локальной связи; или false, если адрес не является адресом одноадресной локальной связи.
isSiteLocalAddress
public boolean isSiteLocalAddress()
- Переопределяет:
-
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()
InetAddress. Результат представлен в сетевом порядке байтов: старший байт адреса находится в getAddress()[0]. - Переопределяет:
-
getAddressв классеInetAddress - Возвращает:
- исходный IP-адрес этого объекта.
getScopeId
public int getScopeId()
- Возвращает:
- идентификатор области действия или ноль, если он не установлен.
- С:
- 1.5
getScopedInterface
public NetworkInterface getScopedInterface()
- Возвращает:
- интерфейс области действия или null, если он не установлен.
- С:
- 1.5
getHostAddress
public String getHostAddress()
- Переопределяет:
-
getHostAddressв классеInetAddress - Возвращает:
- исходный IP-адрес в строковом формате.
hashCode
public int hashCode()
- Переопределяет:
-
hashCodeв классеInetAddress - Возвращает:
- значение хеш-кода для этого IP-адреса.
- См. также:
equals
public boolean equals(Object obj)
Два экземпляра InetAddress представляют один и тот же IP-адрес, если длина массивов байтов, возвращаемых методом getAddress, одинакова для обоих и каждый из компонентов массива одинаков для массивов байтов.
- Переопределяет:
-
equalsв классеInetAddress - Параметры:
-
obj- объект для сравнения. - Возвращает:
- true, если объекты одинаковы; false в противном случае.
- См. также:
isIPv4CompatibleAddress
public boolean isIPv4CompatibleAddress()
- Возвращает:
- значение, указывающее, является ли InetAddress совместимым с IPv4 адресом IPv6; или false, если адрес является IPv4-адресом.
© 1993, 2021, 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/17/docs/api/java.base/java/net/Inet6Address.html