public final class NetworkInterface extends Object
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
将此对象与指定对象进行比较。
|
static NetworkInterface |
getByIndex(int index)
获取一个网络接口给它的索引。
|
static NetworkInterface |
getByInetAddress(InetAddress addr)
搜索具有绑定到指定的Internet协议(IP)地址的网络接口的便利方法。
|
static NetworkInterface |
getByName(String name)
搜索具有指定名称的网络接口。
|
String |
getDisplayName()
获取此网络接口的显示名称。
|
byte[] |
getHardwareAddress()
返回接口的硬件地址(通常为MAC),如果它有一个,如果可以访问给定当前权限。
|
int |
getIndex()
返回此网络接口的索引。
|
Enumeration<InetAddress> |
getInetAddresses()
使用绑定到此网络接口的InetAddresses全部或一部分子枚举的枚举方法。
|
List<InterfaceAddress> |
getInterfaceAddresses()
获取此网络接口的
InterfaceAddresses 的全部或部分的列表。
|
int |
getMTU()
返回此接口的最大传输单元(MTU)。
|
String |
getName()
获取此网络接口的名称。
|
static Enumeration<NetworkInterface> |
getNetworkInterfaces()
返回本机上的所有接口。
|
NetworkInterface |
getParent()
返回此接口的父NetworkInterface;如果这是一个子接口,或
null 如果它是一个物理(非虚拟的)接口或没有父。
|
Enumeration<NetworkInterface> |
getSubInterfaces()
获取连接到此网络接口的所有子接口(也称为虚拟接口)的枚举。
|
int |
hashCode()
返回对象的哈希码值。
|
boolean |
isLoopback()
返回网络接口是否是环回接口。
|
boolean |
isPointToPoint()
返回网络接口是否是点对点接口。
|
boolean |
isUp()
返回网络接口是否启动并运行。
|
boolean |
isVirtual()
返回此接口是否为虚拟接口(也称为子接口)。
|
boolean |
supportsMulticast()
返回网络接口是否支持多播。
|
String |
toString()
返回对象的字符串表示形式。
|
public String getName()
public Enumeration<InetAddress> getInetAddresses()
如果有一个安全管理器, checkConnect
为每个InetAddress调用其checkConnect
方法。 枚举中只会返回checkConnect
不抛出SecurityException的InetAddress。 但是,如果调用者具有NetPermission
(“getNetworkInformation”)权限,则返回所有InetAddresses。
public List<InterfaceAddress> getInterfaceAddresses()
InterfaceAddresses
的列表。
如果有一个安全管理器,它的checkConnect
方法将被调用,每个InterfaceAddress都使用InetAddress。 只有在InterfaceAddresses所checkConnect
不抛出一个SecurityException将在列表中返回。
List
对象,具有此网络接口的所有或一部分InterfaceAddresss
public Enumeration<NetworkInterface> getSubInterfaces()
例如eth0:1将是eth0的子接口。
public NetworkInterface getParent()
null
如果它是一个物理(非虚拟的)接口或没有父。
NetworkInterface
这个接口是附加的。
public int getIndex()
-1
。
这是一个系统特定的值,具有相同名称的接口可以在不同的机器上具有不同的索引。
-1
如果索引未知
getByIndex(int)
public String getDisplayName()
public static NetworkInterface getByName(String name) throws SocketException
name
- 网络接口的名称。
NetworkInterface
具有指定名称,或
null
如果不存在具有指定名称的网络接口。
SocketException
- 如果发生I / O错误。
NullPointerException
- 如果指定的名称是
null
。
public static NetworkInterface getByIndex(int index) throws SocketException
index
- 一个整数,接口的索引
null
是否存在与系统上的这种指数没有界面
SocketException
- 如果发生I / O错误。
IllegalArgumentException
- 如果索引具有负值
getIndex()
public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException
如果指定的IP地址绑定到多个网络接口,则不会定义哪个网络接口返回。
addr
- 用于搜索的
InetAddress
。
NetworkInterface
或
null
如果没有指定IP地址的网络接口。
SocketException
- 如果发生I / O错误。
NullPointerException
- 如果指定的地址是
null
。
public static Enumeration<NetworkInterface> getNetworkInterfaces() throws SocketException
Enumeration
包含至少一个元素,可能表示仅支持本机上实体之间的通信的回送接口。
注意:可以使用getNetworkInterfaces()+ getInetAddresses()获取此节点的所有IP地址
SocketException
- 如果发生I / O错误。
public boolean isUp() throws SocketException
true
如果接口已启动并运行。
SocketException
- 如果发生I / O错误。
public boolean isLoopback() throws SocketException
true
如果接口是环回接口。
SocketException
- 如果发生I / O错误。
public boolean isPointToPoint() throws SocketException
true
如果接口是点对点接口。
SocketException
- 如果发生I / O错误。
public boolean supportsMulticast() throws SocketException
true
如果接口支持多播。
SocketException
- 如果发生I / O错误。
public byte[] getHardwareAddress() throws SocketException
NetPermission
(“getNetworkInformation”)权限。
null
如果地址不存在,是无法访问或安全管理器被设置并且呼叫者没有许可NetPermission(“getNetworkInformation”)
SocketException
- 如果发生I / O错误。
public int getMTU() throws SocketException
SocketException
- 如果发生I / O错误。
public boolean isVirtual()
true
如果这个接口是一个虚拟接口。
public boolean equals(Object obj)
null
,并且它表示与该对象相同的NetworkInterface时,结果为true
。
NetworkInterface的NetworkInterface
实例表示相同的NetworkInterface,如果两个名称和addrs都相同。
equals
在
Object
obj
- 要比较的对象。
true
如果对象是相同的;
false
否则。
InetAddress.getAddress()
public int hashCode()
Object
HashMap
所提供的那样 。
hashCode
的总合同是:
hashCode
方法必须始终返回相同的整数,前提是修改了对象中equals
比较中没有使用的equals
。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。 equals(Object)
方法两个对象相等,则在两个对象中的每个对象上调用hashCode
方法必须产生相同的整数结果。 Object.equals(java.lang.Object)
方法不相等,那么在两个对象中的每个对象上调用hashCode
方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。 尽可能合理实用,由类Object
定义的hashCode方法确实为不同对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java的编程语言不需要此实现技术。)
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)