java.lang.Object
java.net.NetworkInterface
这个类表示由名称和分配给此接口的IP地址列表组成的网络接口。它用于标识加入多播组的本地接口。接口通常以诸如"le0"之类的名称而闻名。
- 自:
- 1.4
-
Method Summary
Modifier and TypeMethodDescriptionboolean
将此对象与指定对象进行比较。static NetworkInterface
getByIndex
(int index) 给定其索引,获取网络接口。static NetworkInterface
getByInetAddress
(InetAddress addr) 用于搜索具有指定Internet协议(IP)地址绑定到其上的网络接口的便利方法。static NetworkInterface
搜索具有指定名称的网络接口。获取此网络接口的显示名称。byte[]
如果接口具有硬件地址(通常为MAC),则返回该接口的硬件地址,如果可以访问并且具有当前权限。int
getIndex()
返回此网络接口的索引。获取绑定到此网络接口的所有或部分InetAddresses的枚举。获取此网络接口的所有或部分InterfaceAddresses的列表。int
getMTU()
返回此接口的最大传输单元(MTU)。getName()
获取此网络接口的名称。static Enumeration
<NetworkInterface> 返回此计算机上所有接口的枚举。如果这是一个子接口,则返回此接口的父NetworkInterface;如果这是一个物理(非虚拟)接口或没有父接口,则返回null。获取附加到此网络接口的所有子接口(也称为虚拟接口)的枚举。获取绑定到此网络接口的所有或部分InetAddresses的流。boolean
返回网络接口是否为环回接口。boolean
返回网络接口是否为点对点接口。boolean
isUp()
返回网络接口是否正在运行。boolean
返回此接口是否为虚拟接口(也称为子接口)。static Stream
<NetworkInterface> 返回此计算机上所有接口的流。获取附加到此网络接口的所有子接口(也称为虚拟接口)的流。boolean
返回网络接口是否支持多播。
-
Method Details
-
getName
获取此网络接口的名称。- 返回:
- 此网络接口的名称
-
getInetAddresses
获取绑定到此网络接口的所有或部分InetAddresses的枚举。如果存在安全管理器,则将为每个InetAddress调用其
checkConnect
方法。只有checkConnect
不会抛出SecurityException的InetAddresses才会在枚举中返回。但是,如果调用者具有NetPermission
("getNetworkInformation")权限,则会返回所有InetAddresses。- 返回:
- 一个带有绑定到此网络接口的所有或部分InetAddresses的枚举对象
- 另请参见:
-
inetAddresses
获取绑定到此网络接口的所有或部分InetAddresses的流。如果存在安全管理器,则将为每个InetAddress调用其
checkConnect
方法。只有checkConnect
不会抛出SecurityException的InetAddresses才会在流中返回。但是,如果调用者具有NetPermission
("getNetworkInformation")权限,则会返回所有InetAddresses。- 返回:
- 一个带有绑定到此网络接口的所有或部分InetAddresses的流对象
- 自:
- 9
-
getInterfaceAddresses
获取此网络接口的所有或部分InterfaceAddresses的列表。如果存在安全管理器,则将为每个InterfaceAddress的InetAddress调用其
checkConnect
方法。只有checkConnect
不会抛出SecurityException的InterfaceAddresses才会在列表中返回。- 返回:
-
一个带有此网络接口的所有或部分InterfaceAddress的
List
对象 - 自:
- 1.6
-
getSubInterfaces
获取附加到此网络接口的所有子接口(也称为虚拟接口)的枚举。例如,eth0:1将是eth0的子接口。
- 返回:
- 一个带有此网络接口的所有子接口的枚举对象
- 自:
- 1.6
- 另请参见:
-
subInterfaces
获取附加到此网络接口的所有子接口(也称为虚拟接口)的流。- 返回:
- 一个带有此网络接口的所有子接口的流对象
- 自:
- 9
-
getParent
如果这是一个子接口,则返回此接口的父NetworkInterface;如果这是一个物理(非虚拟)接口或没有父接口,则返回null。- 返回:
-
此接口附加到的
NetworkInterface
。 - 自:
- 1.6
-
getIndex
public int getIndex()返回此网络接口的索引。索引是大于或等于零的整数,或对于未知的情况为-1
。这是一个特定于系统的值,具有相同名称的接口在不同计算机上可能具有不同的索引。- 返回:
-
此网络接口的索引,如果索引未知则为
-1
- 自:
- 1.7
- 另请参见:
-
getDisplayName
获取此网络接口的显示名称。显示名称是描述网络设备的人类可读字符串。- 返回:
- 表示此网络接口的显示名称的非空字符串,如果没有可用的显示名称则为null。
-
getByName
搜索具有指定名称的网络接口。- 参数:
-
name
- 网络接口的名称。 - 返回:
-
具有指定名称的
NetworkInterface
,如果没有具有指定名称的网络接口则返回null
。 - 抛出:
-
SocketException
- 如果发生I/O错误。 -
NullPointerException
- 如果指定的名称为null
。
-
getByIndex
给定其索引,获取网络接口。- 参数:
-
index
- 一个整数,接口的索引 - 返回:
-
从其索引获取的NetworkInterface,如果系统上没有具有该索引的接口则返回
null
- 抛出:
-
SocketException
- 如果发生I/O错误。 -
IllegalArgumentException
- 如果索引具有负值 - 自:
- 1.7
- 另请参见:
-
getByInetAddress
用于搜索具有指定Internet协议(IP)地址绑定到其上的网络接口的便利方法。如果指定的IP地址绑定到多个网络接口,则不确定返回哪个网络接口。
- 参数:
-
addr
- 要搜索的InetAddress
。 - 返回:
-
具有指定IP地址的
NetworkInterface
,如果没有具有指定IP地址的网络接口则返回null
。 - 抛出:
-
SocketException
- 如果发生I/O错误。 -
NullPointerException
- 如果指定的地址为null
。
-
getNetworkInterfaces
返回此计算机上所有接口的Enumeration
。该Enumeration
至少包含一个元素,可能代表仅支持此计算机上实体之间通信的环回接口。- API注释:
-
此方法可与
getInetAddresses()
结合使用,以获取此节点的所有IP地址 - 返回:
- 在此计算机上找到的NetworkInterfaces的枚举
- 抛出:
-
SocketException
- 如果发生I/O错误,或者如果平台没有至少一个配置的网络接口。 - 另请参见:
-
networkInterfaces
返回此计算机上所有接口的Stream
。该Stream
包含至少一个接口,可能代表仅支持此计算机上实体之间通信的环回接口。- API注释:
-
此方法可与
inetAddresses()
}结合使用,以获取此节点的所有IP地址的流,例如:Stream<InetAddress> addrs = NetworkInterface.networkInterfaces() .flatMap(NetworkInterface::inetAddresses);
- 返回:
- 在此计算机上找到的NetworkInterfaces的流
- 抛出:
-
SocketException
- 如果发生I/O错误,或者如果平台没有至少一个配置的网络接口。 - 自:
- 9
-
isUp
返回网络接口是否正在运行。- 返回:
-
true
如果接口正在运行。 - 抛出:
-
SocketException
- 如果发生I/O错误。 - 自1.6版本起:
- 1.6
-
isLoopback
返回网络接口是否为环回接口。- 返回:
-
true
如果接口是环回接口。 - 抛出:
-
SocketException
- 如果发生I/O错误。 - 自1.6版本起:
- 1.6
-
isPointToPoint
返回网络接口是否为点对点接口。典型的点对点接口可能是通过调制解调器的PPP连接。- 返回:
-
true
如果接口是点对点接口。 - 抛出:
-
SocketException
- 如果发生I/O错误。 - 自1.6版本起:
- 1.6
-
supportsMulticast
返回网络接口是否支持多播。- 返回:
-
true
如果接口支持多播。 - 抛出:
-
SocketException
- 如果发生I/O错误。 - 自1.6版本起:
- 1.6
-
getHardwareAddress
返回接口的硬件地址(通常是MAC地址),如果有并且在当前权限下可以访问。如果设置了安全管理器,则调用者必须具有权限NetPermission
("getNetworkInformation")。- 返回:
-
包含地址的字节数组,如果地址不存在、不可访问或设置了安全管理器且调用者没有权限NetPermission("getNetworkInformation"),则返回
null
。 - 抛出:
-
SocketException
- 如果发生I/O错误。 - 自1.6版本起:
- 1.6
-
getMTU
返回此接口的最大传输单元(MTU)。- 返回:
- 该接口的MTU值。
- 抛出:
-
SocketException
- 如果发生I/O错误。 - 自1.6版本起:
- 1.6
-
isVirtual
public boolean isVirtual()返回此接口是否为虚拟接口(也称为子接口)。在某些系统上,虚拟接口是作为物理接口的子接口创建的,并具有不同的设置(如地址或MTU)。通常,接口的名称将是父接口的名称,后跟冒号(:)和标识子接口的数字,因为可以将多个虚拟接口连接到单个物理接口。- 返回:
-
true
如果此接口是虚拟接口。 - 自1.6版本起:
- 1.6
-
equals
将此对象与指定对象进行比较。结果为true
仅当参数不为null
且表示与此对象相同的NetworkInterface时。如果两个
NetworkInterface
实例的名称和绑定到接口的InetAddress
集相等,则表示两个NetworkInterface相同。
-