- java.lang.Object
 -  
      
- java.net.NetworkInterface
 
 
-  
       
public final class NetworkInterface extends Object
此类表示由名称和分配给此接口的IP地址列表组成的网络接口。 它用于标识加入多播组的本地接口。 接口通常以诸如“le0”之类的名称而为人所知。- 从以下版本开始:
 - 1.4
 
 
-  
        
       
-  
             
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 booleanequals(Object obj)将此对象与指定的对象进行比较。static NetworkInterfacegetByIndex(int index)根据索引获取网络接口。static NetworkInterfacegetByInetAddress(InetAddress addr)搜索具有绑定到其的指定Internet协议(IP)地址的网络接口的便捷方法。static NetworkInterfacegetByName(String name)搜索具有指定名称的网络接口。StringgetDisplayName()获取此网络接口的显示名称。byte[]getHardwareAddress()返回接口的硬件地址(通常为MAC)(如果有),并且在给定当前权限的情况下可以访问它。intgetIndex()返回此网络接口的索引。Enumeration<InetAddress>getInetAddresses()获取包含绑定到此网络接口的全部或部分InetAddresses的枚举。List<InterfaceAddress>getInterfaceAddresses()获取此网络接口的InterfaceAddresses的全部或部分列表。intgetMTU()返回此接口的最大传输单元(MTU)。StringgetName()获取此网络接口的名称。static Enumeration<NetworkInterface>getNetworkInterfaces()返回此计算机上所有接口的Enumeration。NetworkInterfacegetParent()如果这是子接口,则返回此接口的父NetworkInterface;如果是物理(非虚拟)接口或没有父接口,则返回null。Enumeration<NetworkInterface>getSubInterfaces()获取附加到此网络接口的所有子接口(也称为虚拟接口)的枚举。Stream<InetAddress>inetAddresses()获取绑定到此网络接口的所有或部分InetAddresses的流。booleanisLoopback()返回网络接口是否为环回接口。booleanisPointToPoint()返回网络接口是否为点对点接口。booleanisUp()返回网络接口是否已启动并正在运行。booleanisVirtual()返回此接口是否为虚拟接口(也称为子接口)。static Stream<NetworkInterface>networkInterfaces()返回此计算机上所有接口的Stream。Stream<NetworkInterface>subInterfaces()获取连接到此网络接口的所有子接口(也称为虚拟接口)的流。booleansupportsMulticast()返回网络接口是否支持多播。 
 -  
             
 
-  
        
       
-  
             
方法详细信息
-  
getName
public String getName()
获取此网络接口的名称。- 结果
 - 此网络接口的名称
 
 
-  
getInetAddresses
public Enumeration<InetAddress> getInetAddresses()
获取包含绑定到此网络接口的全部或部分InetAddresses的枚举。如果有安全管理器,则为每个InetAddress调用其
checkConnect方法。 只有checkConnect不会抛出SecurityException的InetAddresses才会在Enumeration中返回。 但是,如果调用者具有NetPermission(“getNetworkInformation”)权限,则返回所有InetAddresses。- 结果
 - Enumeration对象,其中包含绑定到此网络接口的全部或部分InetAddresses
 - 另请参见:
 -  
              
inetAddresses() 
 
-  
inetAddresses
public Stream<InetAddress> inetAddresses()
获取绑定到此网络接口的所有或部分InetAddresses的流。如果有安全管理器,则为每个InetAddress调用其
checkConnect方法。 只有在checkConnect不会抛出SecurityException的InetAddresses才会在Stream中返回。 但是,如果调用者具有NetPermission(“getNetworkInformation”)权限,则返回所有InetAddresses。- 结果
 - 一个Stream对象,其中包含绑定到此网络接口的全部或部分InetAddresses
 - 从以下版本开始:
 - 9
 
 
-  
getInterfaceAddresses
public List<InterfaceAddress> getInterfaceAddresses()
获取此网络接口的InterfaceAddresses的全部或部分列表。如果有安全管理器,则使用每个InterfaceAddress的InetAddress调用其
checkConnect方法。 只有checkConnect不会抛出SecurityException的InterfaceAddresses将在List中返回。- 结果
 -  
              
List对象,包含此网络接口的全部或部分InterfaceAddress - 从以下版本开始:
 - 1.6
 
 
-  
getSubInterfaces
public Enumeration<NetworkInterface> getSubInterfaces()
获取附加到此网络接口的所有子接口(也称为虚拟接口)的枚举。例如,eth0:1将是eth0的子接口。
- 结果
 - 一个Enumeration对象,包含此网络接口的所有子接口
 - 从以下版本开始:
 - 1.6
 - 另请参见:
 -  
              
subInterfaces() 
 
-  
subInterfaces
public Stream<NetworkInterface> subInterfaces()
获取连接到此网络接口的所有子接口(也称为虚拟接口)的流。- 结果
 - 一个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
搜索具有指定名称的网络接口。- 参数
 -  
              
name- 网络接口的名称。 - 结果
 - 
               甲 
              
NetworkInterface具有指定名称,或null如果不存在具有指定名称的网络接口。 - 异常
 -  
              
SocketException- 如果发生I / O错误。 -  
              
NullPointerException- 如果指定的名称是null。 
 
-  
getByIndex
public static NetworkInterface getByIndex(int index) throws SocketException
根据索引获取网络接口。- 参数
 -  
              
index- 一个整数,接口的索引 - 结果
 - 
               从其索引获取的NetworkInterface,如果系统上没有与此类索引的接口, 
              
null - 异常
 -  
              
SocketException- 如果发生I / O错误。 -  
              
IllegalArgumentException- 如果索引具有负值 - 从以下版本开始:
 - 1.7
 - 另请参见:
 -  
              
getIndex() 
 
-  
getByInetAddress
public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException
搜索具有绑定到其的指定Internet协议(IP)地址的网络接口的便捷方法。如果指定的IP地址绑定到多个网络接口,则不会定义返回哪个网络接口。
- 参数
 -  
              
addr- 要搜索的InetAddress。 - 结果
 - 
               如果没有具有指定IP地址的网络接口, 
              
NetworkInterface或null。 - 异常
 -  
              
SocketException- 如果发生I / O错误。 -  
              
NullPointerException- 如果指定的地址是null。 
 
-  
getNetworkInterfaces
public static Enumeration<NetworkInterface> getNetworkInterfaces() throws SocketException
返回此计算机上所有接口的Enumeration。Enumeration包含至少一个元素,可能表示仅支持此计算机上的实体之间的通信的回送接口。- API Note:
 - 
               此方法可与 
              
getInetAddresses()结合使用,以获取此节点的所有IP地址 - 结果
 - 在此计算机上找到的NetworkInterface枚举
 - 异常
 -  
              
SocketException- 如果发生I / O错误,或者平台没有至少一个已配置的网络接口。 - 另请参见:
 -  
              
networkInterfaces() 
 
-  
networkInterfaces
public static Stream<NetworkInterface> networkInterfaces() throws SocketException
返回此计算机上所有接口的Stream。Stream包含至少一个接口,可能表示仅支持此计算机上的实体之间的通信的回送接口。- API Note:
 -  
              此方法可与
inetAddresses()}结合使用,以获取此节点的所有IP地址流,例如:Stream<InetAddress> addrs = NetworkInterface.networkInterfaces() .flatMap(NetworkInterface::inetAddresses); - 结果
 - 在此计算机上找到的NetworkInterface流
 - 异常
 -  
              
SocketException- 如果发生I / O错误,或者平台没有至少一个已配置的网络接口。 - 从以下版本开始:
 - 9
 
 
-  
isUp
public boolean isUp() throws SocketException返回网络接口是否已启动并正在运行。- 结果
 -  
              
true如果接口已启动并正在运行。 - 异常
 -  
              
SocketException- 如果发生I / O错误。 - 从以下版本开始:
 - 1.6
 
 
-  
isLoopback
public boolean isLoopback() throws SocketException返回网络接口是否为环回接口。- 结果
 -  
              
true如果接口是环回接口。 - 异常
 -  
              
SocketException- 如果发生I / O错误。 - 从以下版本开始:
 - 1.6
 
 
-  
isPointToPoint
public boolean isPointToPoint() throws SocketException返回网络接口是否为点对点接口。 典型的点对点接口是通过调制解调器的PPP连接。- 结果
 -  
              
true如果接口是点对点接口。 - 异常
 -  
              
SocketException- 如果发生I / O错误。 - 从以下版本开始:
 - 1.6
 
 
-  
supportsMulticast
public boolean supportsMulticast() throws SocketException返回网络接口是否支持多播。- 结果
 -  
              
true如果接口支持多播。 - 异常
 -  
              
SocketException- 如果发生I / O错误。 - 从以下版本开始:
 - 1.6
 
 
-  
getHardwareAddress
public byte[] getHardwareAddress() throws SocketException返回接口的硬件地址(通常为MAC)(如果有),并且在给定当前权限的情况下可以访问它。 如果设置了安全管理器,则调用者必须具有权限NetPermission(“getNetworkInformation”)。- 结果
 - 
               包含地址的字节数组,或者如果地址不存在 
              
null,则无法访问或设置安全管理器且调用者没有权限NetPermission(“getNetworkInformation”) - 异常
 -  
              
SocketException- 如果发生I / O错误。 - 从以下版本开始:
 - 1.6
 
 
-  
getMTU
public int getMTU() throws SocketException返回此接口的最大传输单元(MTU)。- 结果
 - 该接口的MTU值。
 - 异常
 -  
              
SocketException- 如果发生I / O错误。 - 从以下版本开始:
 - 1.6
 
 
-  
isVirtual
public boolean isVirtual()
返回此接口是否为虚拟接口(也称为子接口)。 在某些系统上,虚拟接口是作为物理接口的子级创建的接口,并且具有不同的设置(如地址或MTU)。 通常,接口的名称将是父级的名称,后跟冒号(:)和标识子级的数字,因为可以有多个虚拟接口连接到单个物理接口。- 结果
 -  
              
true如果此接口是虚拟接口。 - 从以下版本开始:
 - 1.6
 
 
-  
equals
public boolean equals(Object obj)
将此对象与指定的对象进行比较。 当且仅当参数不是null并且它表示与此对象相同的NetworkInterface时,结果为true。如果两个名称和地址的名称和地址相同,则
NetworkInterface两个实例表示相同的NetworkInterface。- 重写:
 -  
              
equals类Object - 参数
 -  
              
obj- 要比较的对象。 - 结果
 -  
              
true如果对象相同; 否则为false。 - 另请参见:
 -  
              
InetAddress.getAddress() 
 
 -  
 
 -