Класс 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). |
static NetworkInterface |
getByName |
Поиск сетевого интерфейса по указанному имени. |
String |
getDisplayName() |
Получение отображаемого имени этого сетевого интерфейса. |
byte[] |
getHardwareAddress() |
Возвращает физический адрес (обычно MAC) интерфейса, если он есть и если к нему есть доступ в текущих привилегиях. |
int |
getIndex() |
Возвращает индекс этого сетевого интерфейса. |
Enumeration |
getInetAddresses() |
Получение перечисления InetAddresses, привязанных к этому сетевому интерфейсу. |
List |
getInterfaceAddresses() |
Получение списка InterfaceAddresses этого сетевого интерфейса. |
int |
getMTU() |
Возвращает максимальное значение блока передачи данных (MTU) этого интерфейса. |
String |
getName() |
Получение имени этого сетевого интерфейса. |
static Enumeration |
getNetworkInterfaces() |
Возвращает перечисление всех интерфейсов в этой машине. |
NetworkInterface |
getParent() |
Возвращает родительский NetworkInterface этого интерфейса, если это дочерний интерфейс, или null, если это физический (не виртуальный) интерфейс или у него нет родителя. |
Enumeration |
getSubInterfaces() |
Получение перечисления всех подсетей (также известных как виртуальные интерфейсы), подключенных к этому сетевому интерфейсу. |
Stream |
inetAddresses() |
Получение потока InetAddresses, привязанных к этому сетевому интерфейсу. |
boolean |
isLoopback() |
Возвращает, является ли сетевой интерфейс интерфейсом обратной связи. |
boolean |
isPointToPoint() |
Возвращает, является ли сетевой интерфейс интерфейсом точка-точка. |
boolean |
isUp() |
Возвращает, работает ли сетевой интерфейс. |
boolean |
isVirtual() |
Возвращает, является ли этот интерфейс виртуальным интерфейсом (также называется подсетью). |
static Stream |
networkInterfaces() |
Возвращает перечисление всех интерфейсов в этой машине. |
Stream |
subInterfaces() |
Получение потока всех подсетей (также известных как виртуальные интерфейсы), подключенных к этому сетевому интерфейсу. |
boolean |
supportsMulticast() |
Возвращает, поддерживает ли сетевой интерфейс многоадресную рассылку. |
Подробное описание методов
getName
public String getName()
- Возвращает:
- имя этого сетевого интерфейса
getInetAddresses
public Enumeration<InetAddress> getInetAddresses()
- Примечание об реализации:
- Возвращаемое перечисление содержит InetAddresses, которые были привязаны к интерфейсу на момент чтения конфигурации интерфейса интерфейса
- Возвращает:
- объект перечисления с адресами InetAddresses, привязанными к этому сетевому интерфейсу
- См. также:
inetAddresses
public Stream<InetAddress> 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
public Stream<NetworkInterface> subInterfaces()
- Возвращает:
- объект потока со всеми подчиненными интерфейсами этого сетевого интерфейса
- С момента:
- 9
getParent
public NetworkInterface getParent()
null, если это физический (не виртуальный) интерфейс или у него нет родителя.- Возвращает:
- Родительский интерфейс, к которому присоединен этот интерфейс.
- С момента:
- 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- целое число, индекс интерфейса - Возвращает:
- сетевой интерфейс, полученный по его индексу, или
null, если на системе нет интерфейса с таким индексом - Исключения:
-
SocketException- если произошла ошибка ввода-вывода. -
IllegalArgumentException- если индекс имеет отрицательное значение - С момента:
- 1.7
- См. также:
getByInetAddress
public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException
- Примечание API:
- Возвращаемый экземпляр интерфейса может отражать снимок конфигурации, сделанный в момент создания экземпляра. См. общее обсуждение моментов и конфигурации для семантики возвращаемого интерфейса.
- Параметры:
-
addr- IP-адрес для поиска. - Возвращает:
- Экземпляр сетевого интерфейса или
null, если сетевой интерфейс с указанным IP-адресом не найден. - Исключения:
-
SocketException- Если произошла ошибка ввода-вывода. -
NullPointerException- Если указанный адресnull.
getNetworkInterfaces
public static Enumeration<NetworkInterface> getNetworkInterfaces() throws SocketException
- Примечание API:
- Этот метод можно использовать в сочетании с
getInetAddresses()для получения всех IP-адресов этого узла.Возвращаемые экземпляры интерфейсов могут отражать снимок конфигурации, сделанный в момент их создания. См. общее обсуждение моментов и конфигурации для семантики возвращаемого интерфейса.
- Возвращает:
- перечисление NetworkInterfaces, найденных на этом компьютере
- Исключения:
-
SocketException- Если произошла ошибка ввода-вывода или платформа не имеет хотя бы одного настроенного сетевого интерфейса. - См. также:
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
- Возвращает:
-
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 представляют один и тот же сетевой интерфейс, если имя и набор InetAddress, привязанных к интерфейсам, равны.
- Переопределяет:
-
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/net/NetworkInterface.html