Класс NetworkInterface
public final class NetworkInterface extends Object
Сетевой интерфейс — это абстракция, инкапсулирующая характеристики контроллера сетевого интерфейса или виртуального сетевого адаптера — аппаратного или программного компонента системы, соединяющего компьютер или хост-систему с компьютерной сетью. Сетевой интерфейс может быть физическим или виртуальным. У сетевого интерфейса есть имя, ноль или более назначенных IP-адресов, ноль или более MAC-адресов, а также может быть индекс. Имя в значительной степени зависит от платформы; типичным примером является "le0", но оно может быть неуникальным. Индекс — это число, специфичное для платформы, которое идентифицирует интерфейс. Конфигурация сети может измениться в течение срока работы JVM. Например, набор IP-адресов, назначенных сетевому интерфейсу, может быть временным и динамически выделяемым, а также может измениться в любой момент.
При получении экземпляра NetworkInterface часть его конфигурации (например, имя и список назначенных IP-адресов) отражает конфигурацию на момент создания. Чтобы получить обновлённое представление конфигурации сети, может потребоваться повторно найти сетевой интерфейс и получить новый экземпляр.
Экземпляры сетевого интерфейса обычно используются для определения локального интерфейса, через который выполняется присоединение к группе многоадресной рассылки.
- Примечание к API:
-
Несколько статических методов этого класса являются фабричными методами, возвращающими новый экземпляр
NetworkInterface, отражающий конфигурацию на момент создания. Конфигурация сети может измениться в любой момент, поэтому для получения более актуального представления сетевых интерфейсов может потребоваться повторный вызов этих методов. В частности, не гарантируется, что тот же интерфейс будет найден по тому же индексу или что те же сетевые адреса будут привязаны к интерфейсу, если конфигурация сети системы изменилась. - Начиная с:
- 1.4
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает этот объект с указанным объектом. |
static NetworkInterface |
getByIndex |
Получает сетевой интерфейс по его индексу. |
static NetworkInterface |
getByInetAddress |
Вспомогательный метод для поиска сетевого интерфейса, к которому привязан указанный IP-адрес (Internet Protocol). |
static NetworkInterface |
getByName |
Выполняет поиск сетевого интерфейса с указанным именем. |
String |
getDisplayName() |
Получает отображаемое имя этого сетевого интерфейса. |
byte[] |
getHardwareAddress() |
Возвращает аппаратный адрес интерфейса (обычно MAC), если он есть и доступен с текущими правами. |
int |
getIndex() |
Возвращает индекс этого сетевого интерфейса. |
Enumeration |
getInetAddresses() |
Получает Enumeration адресов InetAddress, привязанных к этому сетевому интерфейсу. |
List |
getInterfaceAddresses() |
Получает List объектов InterfaceAddresses этого сетевого интерфейса. |
int |
getMTU() |
Возвращает максимальный размер блока передачи (MTU) этого интерфейса. |
String |
getName() |
Получает имя этого сетевого интерфейса. |
static Enumeration |
getNetworkInterfaces() |
Возвращает Enumeration всех интерфейсов на этом компьютере. |
NetworkInterface |
getParent() |
Возвращает родительский NetworkInterface этого интерфейса, если он является подинтерфейсом, или null, если он является физическим (не виртуальным) интерфейсом либо не имеет родительского интерфейса. |
Enumeration |
getSubInterfaces() |
Получает Enumeration всех подинтерфейсов (также известных как виртуальные интерфейсы), подключённых к этому сетевому интерфейсу. |
Stream |
inetAddresses() |
Получает Stream адресов InetAddress, привязанных к этому сетевому интерфейсу. |
boolean |
isLoopback() |
Возвращает признак того, является ли сетевой интерфейс интерфейсом обратной петли. |
boolean |
isPointToPoint() |
Возвращает признак того, является ли сетевой интерфейс интерфейсом «точка-точка». |
boolean |
isUp() |
Возвращает признак того, включён ли сетевой интерфейс и работает ли он. |
boolean |
isVirtual() |
Возвращает признак того, является ли этот интерфейс виртуальным (также называемым подинтерфейсом). |
static Stream |
networkInterfaces() |
Возвращает Stream всех интерфейсов на этом компьютере. |
Stream |
subInterfaces() |
Получает Stream всех подинтерфейсов (также известных как виртуальные интерфейсы), подключённых к этому сетевому интерфейсу. |
boolean |
supportsMulticast() |
Возвращает признак того, поддерживает ли сетевой интерфейс многоадресную рассылку. |
Подробное описание методов
getName
public String getName()
- Возвращает:
- имя этого сетевого интерфейса
getInetAddresses
public Enumeration<InetAddress> getInetAddresses()
- Примечание по реализации:
- Возвращаемое перечисление содержит адреса InetAddress, привязанные к интерфейсу на момент чтения конфигурации интерфейса
- Возвращает:
- объект Enumeration с адресами InetAddress, привязанными к этому сетевому интерфейсу
- См. также:
inetAddresses
public Stream<InetAddress> inetAddresses()
- Примечание по реализации:
- Поток содержит адреса InetAddress, привязанные к интерфейсу на момент чтения конфигурации интерфейса
- Возвращает:
- объект Stream с адресами InetAddress, привязанными к этому сетевому интерфейсу
- Начиная с:
- 9
getInterfaceAddresses
public List<InterfaceAddress> getInterfaceAddresses()
InterfaceAddresses этого сетевого интерфейса.- Возвращает:
- объект
Listс InterfaceAddress этого сетевого интерфейса - Начиная с:
- 1.6
getSubInterfaces
public Enumeration<NetworkInterface> getSubInterfaces()
Например, eth0:1 будет подинтерфейсом eth0.
- Возвращает:
- объект Enumeration со всеми подинтерфейсами этого сетевого интерфейса
- Начиная с:
- 1.6
- См. также:
subInterfaces
public Stream<NetworkInterface> subInterfaces()
- Возвращает:
- объект Stream со всеми подинтерфейсами этого сетевого интерфейса
- Начиная с:
- 9
getParent
public NetworkInterface getParent()
null, если он является физическим (не виртуальным) интерфейсом либо не имеет родительского интерфейса.- Возвращает:
NetworkInterface, к которому подключён этот интерфейс.- Начиная с:
- 1.6
getIndex
public int getIndex()
-1, если он неизвестен. Это значение зависит от системы; интерфейсы с одинаковым именем могут иметь разные индексы на разных компьютерах.- Возвращает:
- индекс этого сетевого интерфейса или
-1, если индекс неизвестен - Начиная с:
- 1.7
- См. также:
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
- См. также:
getByInetAddress
public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException
Если указанный 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
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
- Возвращает:
-
true, если интерфейс является интерфейсом «точка-точка». - Выбрасывает:
-
SocketException— если возникает ошибка ввода-вывода. - Начиная с:
- 1.6
supportsMulticast
public boolean supportsMulticast() throws SocketException
- Возвращает:
-
true, если интерфейс поддерживает многоадресную рассылку. - Выбрасывает:
-
SocketException— если возникает ошибка ввода-вывода. - Начиная с:
- 1.6
getHardwareAddress
public byte[] getHardwareAddress() throws SocketException
- Возвращает:
- массив байтов, содержащий адрес, или
null, если адрес отсутствует или недоступен - Выбрасывает:
-
SocketException— если возникает ошибка ввода-вывода. - Начиная с:
- 1.6
getMTU
public int getMTU() throws SocketException
- Возвращает:
- значение MTU для этого интерфейса.
- Выбрасывает:
-
SocketException— если возникает ошибка ввода-вывода. - Начиная с:
- 1.6
isVirtual
public boolean isVirtual()
- Возвращает:
-
true, если этот интерфейс является виртуальным. - Начиная с:
- 1.6
equals
public boolean equals(Object obj)
true тогда и только тогда, когда аргумент не равен null и представляет тот же NetworkInterface, что и этот объект. Два экземпляра NetworkInterface представляют один и тот же NetworkInterface, если их имена и наборы InetAddresses, привязанных к интерфейсам, совпадают.
- Переопределяет:
-
equalsв классеObject - Примечание к API:
- два объекта
NetworkInterface, ссылающиеся на один и тот же базовый интерфейс, могут не считаться равными, если система динамически обновляет адреса базового интерфейса. - Параметры:
-
obj— объект для сравнения. - Возвращает:
-
true, если объекты одинаковы; в противном случае —false. - См. также:
© 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