Класс 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 |
Вспомогательный метод для поиска сетевого интерфейса, к которому привязан указанный адрес Internet Protocol (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() |
Возвращает Enumeration всех интерфейсов этого компьютера. |
NetworkInterface |
getParent() |
Возвращает родительский NetworkInterface этого интерфейса, если он является подинтерфейсом, или null, если это физический (не виртуальный) интерфейс либо у него нет родительского интерфейса. |
Enumeration |
getSubInterfaces() |
Возвращает перечисление всех подинтерфейсов (также называемых виртуальными интерфейсами), подключенных к этому сетевому интерфейсу. |
Stream |
inetAddresses() |
Возвращает поток InetAddresses, привязанных к этому сетевому интерфейсу. |
boolean |
isLoopback() |
Возвращает признак того, является ли сетевой интерфейс интерфейсом обратной петли. |
boolean |
isPointToPoint() |
Возвращает признак того, является ли сетевой интерфейс интерфейсом «точка-точка». |
boolean |
isUp() |
Возвращает признак того, включен ли сетевой интерфейс и работает ли он. |
boolean |
isVirtual() |
Возвращает признак того, является ли этот интерфейс виртуальным (также называемым подинтерфейсом). |
static Stream |
networkInterfaces() |
Возвращает Stream всех интерфейсов этого компьютера. |
Stream |
subInterfaces() |
Возвращает поток всех подинтерфейсов (также называемых виртуальными интерфейсами), подключенных к этому сетевому интерфейсу. |
boolean |
supportsMulticast() |
Возвращает признак того, поддерживает ли сетевой интерфейс многоадресную рассылку. |
Методы, объявленные в классе Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание методов
getName
public String getName()
- Возвращает:
- имя этого сетевого интерфейса
getInetAddresses
public Enumeration<InetAddress> getInetAddresses()
- Примечание по реализации:
- Возвращаемое перечисление содержит InetAddresses, привязанные к интерфейсу на момент чтения конфигурации интерфейса
- Возвращает:
- объект Enumeration с InetAddresses, привязанными к этому сетевому интерфейсу
- См. также:
inetAddresses
public Stream<InetAddress> inetAddresses()
- Примечание по реализации:
- Поток содержит InetAddresses, привязанные к интерфейсу на момент чтения конфигурации интерфейса
- Возвращает:
- объект Stream с InetAddresses, привязанными к этому сетевому интерфейсу
- С версии:
- 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-адреса этого узла.Возвращенные экземпляры интерфейсов могут отражать снимок конфигурации, созданный в момент создания экземпляров. Описание семантики возвращаемого интерфейса см. в общем обсуждении снимков и конфигурации.
- Возвращает:
- перечисление NetworkInterfaces, найденных на этом компьютере
- Вызывает:
-
SocketException— если произошла ошибка ввода-вывода или если на платформе нет ни одного настроенного сетевого интерфейса. - См. также:
networkInterfaces
public static Stream<NetworkInterface> networkInterfaces() throws SocketException
Stream всех интерфейсов этого компьютера. Stream содержит как минимум один интерфейс, которым может быть интерфейс обратной петли, поддерживающий только обмен данными между объектами на этом компьютере.- Примечание к 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, что и этот объект. Два экземпляра NetworkInterface представляют один и тот же 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.