Spec-Zone.ru › OpenJDK 24

Класс NetworkInterface

java.lang.Object
java.net.NetworkInterface
public final class NetworkInterface extends Object
Этот класс представляет сетевой интерфейс.

Сетевой интерфейс — это абстракция, которая инкапсулирует характеристики сетевого контроллера или виртуального сетевого адаптера, который является системным аппаратным/программным компонентом, соединяющим компьютер или хост-систему с компьютерной сетью. Сетевой интерфейс может быть физическим или виртуальным. У сетевого интерфейса есть имя, ноль или более назначенных IP-адресов, ноль или более MAC-адресов и, возможно, индекс. Имя сильно зависит от платформы, но типичным является имя, такое как «le0»; оно может быть не уникальным. Индекс — это число, сильно зависящее от платформы, которое идентифицирует интерфейс. Конфигурация сети может меняться во время работы JVM. Например, набор IP-адресов, назначенных сетевому интерфейсу, может быть временным и динамически назначаемым и может меняться в любое время.

При получении NetworkInterface экземпляра часть его конфигурации (например, его имя и список назначенных IP-адресов) отражает его конфигурацию на момент создания. Для получения обновленного представления о конфигурации сети может потребоваться снова найти сетевой интерфейс, чтобы получить новый экземпляр.

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

Примечание API:
Несколько статических методов в этом классе являются методами-фабриками, возвращающими новый экземпляр NetworkInterface, отражающий конфигурацию на момент создания экземпляра. Конфигурация сети может меняться в любое время, и поэтому эти методы могут потребоваться вызывать снова, чтобы получить более актуальное представление о сетевых интерфейсах. В частности, нет гарантии, что один и тот же интерфейс будет найден по тому же индексу или что те же сетевые адреса будут привязаны к интерфейсу, если конфигурация сети системы изменилась.
С:
1.4

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

Модификатор и тип Метод Описание
boolean equals(Object obj)
Сравнивает этот объект с указанным объектом.
static NetworkInterface getByIndex(int index)
Получение сетевого интерфейса по его индексу.
static NetworkInterface getByInetAddress(InetAddress addr)
Удобный метод для поиска сетевого интерфейса, к которому привязан указанный адрес Интернет-протокола (IP).
static NetworkInterface getByName(String name)
Поиск сетевого интерфейса по указанному имени.
String getDisplayName()
Получение отображаемого имени этого сетевого интерфейса.
byte[] getHardwareAddress()
Возвращает физический адрес (обычно MAC) интерфейса, если он есть и если к нему есть доступ в текущих привилегиях.
int getIndex()
Возвращает индекс этого сетевого интерфейса.
Enumeration<InetAddress> getInetAddresses()
Получение перечисления InetAddresses, привязанных к этому сетевому интерфейсу.
List<InterfaceAddress> getInterfaceAddresses()
Получение списка InterfaceAddresses этого сетевого интерфейса.
int getMTU()
Возвращает максимальное значение блока передачи данных (MTU) этого интерфейса.
String getName()
Получение имени этого сетевого интерфейса.
static Enumeration<NetworkInterface> getNetworkInterfaces()
Возвращает перечисление всех интерфейсов в этой машине.
NetworkInterface getParent()
Возвращает родительский NetworkInterface этого интерфейса, если это дочерний интерфейс, или null, если это физический (не виртуальный) интерфейс или у него нет родителя.
Enumeration<NetworkInterface> getSubInterfaces()
Получение перечисления всех подсетей (также известных как виртуальные интерфейсы), подключенных к этому сетевому интерфейсу.
Stream<InetAddress> inetAddresses()
Получение потока InetAddresses, привязанных к этому сетевому интерфейсу.
boolean isLoopback()
Возвращает, является ли сетевой интерфейс интерфейсом обратной связи.
boolean isPointToPoint()
Возвращает, является ли сетевой интерфейс интерфейсом точка-точка.
boolean isUp()
Возвращает, работает ли сетевой интерфейс.
boolean isVirtual()
Возвращает, является ли этот интерфейс виртуальным интерфейсом (также называется подсетью).
static Stream<NetworkInterface> networkInterfaces()
Возвращает перечисление всех интерфейсов в этой машине.
Stream<NetworkInterface> subInterfaces()
Получение потока всех подсетей (также известных как виртуальные интерфейсы), подключенных к этому сетевому интерфейсу.
boolean supportsMulticast()
Возвращает, поддерживает ли сетевой интерфейс многоадресную рассылку.

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

clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

getName

public String getName()
Получить имя этого сетевого интерфейса.
Возвращает:
имя этого сетевого интерфейса

getInetAddresses

public Enumeration<InetAddress> getInetAddresses()
Получить перечисление адресов InetAddresses, привязанных к этому сетевому интерфейсу.
Примечание об реализации:
Возвращаемое перечисление содержит InetAddresses, которые были привязаны к интерфейсу на момент чтения конфигурации интерфейса интерфейса
Возвращает:
объект перечисления с адресами InetAddresses, привязанными к этому сетевому интерфейсу
См. также:
  • inetAddresses()

inetAddresses

public Stream<InetAddress> inetAddresses()
Получить поток адресов InetAddresses, привязанных к этому сетевому интерфейсу.
Примечание об реализации:
Поток содержит InetAddresses, которые были привязаны к интерфейсу на момент чтения конфигурации интерфейса интерфейса
Возвращает:
объект потока с адресами InetAddresses, привязанными к этому сетевому интерфейсу
С момента:
9

getInterfaceAddresses

public List<InterfaceAddress> getInterfaceAddresses()
Получить список адресов InterfaceAddresses этого сетевого интерфейса.
Возвращает:
объект List с InterfaceAddress этого сетевого интерфейса
С момента:
1.6

getSubInterfaces

public Enumeration<NetworkInterface> getSubInterfaces()
Получить перечисление всех подчиненных интерфейсов (также известных как виртуальные интерфейсы), подключенных к этому сетевому интерфейсу.

Например, eth0:1 будет подчиненным интерфейсом к eth0.

Возвращает:
объект перечисления со всеми подчиненными интерфейсами этого сетевого интерфейса
С момента:
1.6
См. также:
  • subInterfaces()

subInterfaces

public Stream<NetworkInterface> subInterfaces()
Получить поток всех подчиненных интерфейсов (также известных как виртуальные интерфейсы), подключенных к этому сетевому интерфейсу.
Возвращает:
объект потока со всеми подчиненными интерфейсами этого сетевого интерфейса
С момента:
9

getParent

public NetworkInterface getParent()
Возвращает родительский NetworkInterface этого интерфейса, если это подчиненный интерфейс, или null, если это физический (не виртуальный) интерфейс или у него нет родителя.
Возвращает:
Родительский интерфейс, к которому присоединен этот интерфейс.
С момента:
1.6

getIndex

public int getIndex()
Возвращает индекс этого сетевого интерфейса. Индекс — целое число, большее или равное нулю, или -1 для неизвестного значения. Это значение, зависящее от системы, и интерфейсы с одинаковым именем могут иметь разные индексы на разных машинах.
Возвращает:
индекс этого сетевого интерфейса или -1, если индекс неизвестен
С момента:
1.7
См. также:
  • getByIndex(int)

getDisplayName

public String getDisplayName()
Получить отображаемое имя этого сетевого интерфейса. Отображаемое имя — это строка, читаемая человеком, описывающая сетевое устройство.
Возвращает:
непустая строка, представляющая отображаемое имя этого сетевого интерфейса, или null, если отображаемое имя недоступно.

getByName

public static NetworkInterface getByName(String name) throws SocketException
Поиск сетевого интерфейса с указанным именем.
Примечание API:
Возвращаемый экземпляр интерфейса может отражать снимок конфигурации, сделанный в момент создания экземпляра. См. общее обсуждение моментов и конфигурации для семантики возвращаемого интерфейса.
Параметры:
name - Имя сетевого интерфейса.
Возвращает:
Экземпляр NetworkInterface с указанным именем, или null, если сетевой интерфейс с указанным именем не найден.
Исключения:
SocketException - Если произошла ошибка ввода-вывода.
NullPointerException - Если указанное имя null.

getByIndex

public static NetworkInterface getByIndex(int index) throws SocketException
Получить сетевой интерфейс по его индексу.
Примечание API:
Возвращаемый экземпляр интерфейса может отражать снимок конфигурации, сделанный в момент создания экземпляра. См. общее обсуждение моментов и конфигурации для семантики возвращаемого интерфейса.
Параметры:
index - целое число, индекс интерфейса
Возвращает:
сетевой интерфейс, полученный по его индексу, или null, если на системе нет интерфейса с таким индексом
Исключения:
SocketException - если произошла ошибка ввода-вывода.
IllegalArgumentException - если индекс имеет отрицательное значение
С момента:
1.7
См. также:
  • getIndex()

getByInetAddress

public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException
Удобный метод для поиска сетевого интерфейса, к которому привязан указанный адрес интернет-протокола (IP).
Примечание API:
Возвращаемый экземпляр интерфейса может отражать снимок конфигурации, сделанный в момент создания экземпляра. См. общее обсуждение моментов и конфигурации для семантики возвращаемого интерфейса.
Параметры:
addr - IP-адрес для поиска.
Возвращает:
Экземпляр сетевого интерфейса или null, если сетевой интерфейс с указанным IP-адресом не найден.
Исключения:
SocketException - Если произошла ошибка ввода-вывода.
NullPointerException - Если указанный адрес null.

getNetworkInterfaces

public static Enumeration<NetworkInterface> getNetworkInterfaces() throws SocketException
Возвращает перечисление всех интерфейсов на этом компьютере. Перечисление содержит как минимум один элемент, возможно, представляющий обратный интерфейс, который поддерживает только обмен данными между сущностями на этом компьютере.
Примечание API:
Этот метод можно использовать в сочетании с getInetAddresses() для получения всех IP-адресов этого узла.

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

Возвращает:
перечисление NetworkInterfaces, найденных на этом компьютере
Исключения:
SocketException - Если произошла ошибка ввода-вывода или платформа не имеет хотя бы одного настроенного сетевого интерфейса.
См. также:
  • networkInterfaces()

networkInterfaces

public static Stream<NetworkInterface> networkInterfaces() throws SocketException
Возвращает поток всех интерфейсов на этом компьютере. Поток содержит как минимум один интерфейс, возможно, представляющий обратный интерфейс, который поддерживает только обмен данными между сущностями на этом компьютере.
Примечание API:
Этот метод можно использовать в сочетании с inetAddresses()} для получения потока всех IP-адресов этого узла, например:
 
 Stream<InetAddress> addrs = NetworkInterface.networkInterfaces()
     .flatMap(NetworkInterface::inetAddresses);
 

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

Возвращает:
поток NetworkInterfaces, найденных на этом компьютере
Исключения:
SocketException - Если произошла ошибка ввода-вывода или платформа не имеет хотя бы одного настроенного сетевого интерфейса.
С момента:
9

isUp

public boolean isUp() throws SocketException
Возвращает, включен ли сетевой интерфейс и работает ли он.
Возвращает:
true, если интерфейс включен и работает.
Исключения:
SocketException - Если произошла ошибка ввода-вывода.
С момента:
1.6

isLoopback

public boolean isLoopback() throws SocketException
Возвращает, является ли сетевой интерфейс интерфейсом обратной связи.
Возвращает:
true, если интерфейс является интерфейсом обратной связи.
Исключения:
SocketException - Если произошла ошибка ввода-вывода.
С момента:
1.6

isPointToPoint

public boolean isPointToPoint() throws SocketException
Возвращает, является ли сетевой интерфейс интерфейсом «точка-точка». Типичным интерфейсом «точка-точка» является соединение PPP через модем.
Возвращает:
true, если интерфейс является интерфейсом «точка-точка».
Исключения:
SocketException - Если произошла ошибка ввода-вывода.
С момента:
1.6

supportsMulticast

public boolean supportsMulticast() throws SocketException
Возвращает, поддерживает ли сетевой интерфейс многоадресную рассылку.
Возвращает:
true, если интерфейс поддерживает многоадресную рассылку.
Использует:
SocketException — если произошла ошибка ввода-вывода.
С тех пор:
1.6

getHardwareAddress

public byte[] getHardwareAddress() throws SocketException
Возвращает аппаратный адрес (обычно MAC) интерфейса, если он есть и доступен при текущих привилегиях.
Возвращает:
массив байтов, содержащий адрес, или null, если адрес не существует или недоступен
Использует:
SocketException — если произошла ошибка ввода-вывода.
С тех пор:
1.6

getMTU

public int getMTU() throws SocketException
Возвращает максимальный размер пакета (MTU) данного интерфейса.
Возвращает:
значение MTU для данного интерфейса.
Использует:
SocketException — если произошла ошибка ввода-вывода.
С тех пор:
1.6

isVirtual

public boolean isVirtual()
Возвращает, является ли данный интерфейс виртуальным интерфейсом (также называется дочерним интерфейсом). Виртуальные интерфейсы — это, на некоторых системах, интерфейсы, созданные как дети физического интерфейса и настроенные по-другому (например, адрес или MTU). Обычно имя интерфейса будет именем родительского интерфейса, за которым следует двоеточие (:) и число, определяющее дочерний интерфейс, поскольку к одному физическому интерфейсу может быть подключено несколько виртуальных интерфейсов.
Возвращает:
true, если данный интерфейс является виртуальным интерфейсом.
С тех пор:
1.6

equals

public boolean equals(Object obj)
Сравнивает данный объект со заданным объектом. Результат равен true, если и только если аргумент не null и представляет тот же сетевой интерфейс, что и этот объект.

Два экземпляра NetworkInterface представляют один и тот же сетевой интерфейс, если имя и набор InetAddress, привязанных к интерфейсам, равны.

Переопределяет:
equals в классе Object
Примечание API:
два NetworkInterface объекта, ссылающихся на один и тот же базовый интерфейс, могут не сравниваться как равные, если адреса базового интерфейса динамически обновляются системой.
Параметры:
obj - объект для сравнения.
Возвращает:
true, если объекты одинаковые; false в противном случае.
См. также:
  • InetAddress.getAddress()

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/net/NetworkInterface.html

Spec-Zone.ru

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