Spec-Zone.ru › OpenJDK 25

Класс 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-адрес (Internet Protocol).
static NetworkInterface getByName(String name)
Выполняет поиск сетевого интерфейса с указанным именем.
String getDisplayName()
Получает отображаемое имя этого сетевого интерфейса.
byte[] getHardwareAddress()
Возвращает аппаратный адрес интерфейса (обычно MAC), если он есть и доступен с текущими правами.
int getIndex()
Возвращает индекс этого сетевого интерфейса.
Enumeration<InetAddress> getInetAddresses()
Получает Enumeration адресов InetAddress, привязанных к этому сетевому интерфейсу.
List<InterfaceAddress> getInterfaceAddresses()
Получает List объектов InterfaceAddresses этого сетевого интерфейса.
int getMTU()
Возвращает максимальный размер блока передачи (MTU) этого интерфейса.
String getName()
Получает имя этого сетевого интерфейса.
static Enumeration<NetworkInterface> getNetworkInterfaces()
Возвращает Enumeration всех интерфейсов на этом компьютере.
NetworkInterface getParent()
Возвращает родительский NetworkInterface этого интерфейса, если он является подинтерфейсом, или null, если он является физическим (не виртуальным) интерфейсом либо не имеет родительского интерфейса.
Enumeration<NetworkInterface> getSubInterfaces()
Получает Enumeration всех подинтерфейсов (также известных как виртуальные интерфейсы), подключённых к этому сетевому интерфейсу.
Stream<InetAddress> inetAddresses()
Получает Stream адресов InetAddress, привязанных к этому сетевому интерфейсу.
boolean isLoopback()
Возвращает признак того, является ли сетевой интерфейс интерфейсом обратной петли.
boolean isPointToPoint()
Возвращает признак того, является ли сетевой интерфейс интерфейсом «точка-точка».
boolean isUp()
Возвращает признак того, включён ли сетевой интерфейс и работает ли он.
boolean isVirtual()
Возвращает признак того, является ли этот интерфейс виртуальным (также называемым подинтерфейсом).
static Stream<NetworkInterface> networkInterfaces()
Возвращает Stream всех интерфейсов на этом компьютере.
Stream<NetworkInterface> subInterfaces()
Получает Stream всех подинтерфейсов (также известных как виртуальные интерфейсы), подключённых к этому сетевому интерфейсу.
boolean supportsMulticast()
Возвращает признак того, поддерживает ли сетевой интерфейс многоадресную рассылку.

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

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

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

getName

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

getInetAddresses

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

inetAddresses

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

getInterfaceAddresses

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

getSubInterfaces

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

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

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

subInterfaces

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

getParent

public NetworkInterface getParent()
Возвращает родительский NetworkInterface этого интерфейса, если он является подинтерфейсом, или null, если он является физическим (не виртуальным) интерфейсом либо не имеет родительского интерфейса.
Возвращает:
NetworkInterface, к которому подключён этот интерфейс.
Начиная с:
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 — целое число, индекс интерфейса
Возвращает:
NetworkInterface, полученный по его индексу, или null, если в системе нет интерфейса с таким индексом
Выбрасывает:
SocketException — если возникает ошибка ввода-вывода.
IllegalArgumentException — если индекс имеет отрицательное значение
Начиная с:
1.7
См. также:
  • getIndex()

getByInetAddress

public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException
Вспомогательный метод для поиска сетевого интерфейса, к которому привязан указанный IP-адрес (Internet Protocol).

Если указанный IP-адрес привязан к нескольким сетевым интерфейсам, не определено, какой именно интерфейс будет возвращён.

Примечание к API:
Возвращённый экземпляр интерфейса может отражать снимок конфигурации, сделанный в момент создания экземпляра. См. общее описание снимков и конфигурации, в котором рассматривается семантика возвращаемого интерфейса.
Параметры:
addr — InetAddress для поиска.
Возвращает:
NetworkInterface или null, если сетевого интерфейса с указанным IP-адресом нет.
Выбрасывает:
SocketException — если возникает ошибка ввода-вывода.
NullPointerException — если указанный адрес равен null.

getNetworkInterfaces

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

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

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

networkInterfaces

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

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

Возвращает:
Stream найденных на этом компьютере NetworkInterface
Выбрасывает:
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, что и этот объект.

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/NetworkInterface.html

Spec-Zone.ru

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