public final class NetworkInterface
extends Object
java.lang.Object | |
↳ | java.net.NetworkInterface |
该类表示一个网络接口,由一个名称和一个分配给该接口的IP地址列表组成。 它用于标识组播组加入的本地接口。 接口通常通过诸如“le0”等名称而知道。
Public methods |
|
---|---|
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() 便捷方法返回一个Enumeration,其中包含绑定到此网络接口的所有或部分InetAddress。 |
List<InterfaceAddress> |
getInterfaceAddresses() 获取此网络接口的全部或部分 |
int |
getMTU() 返回此接口的最大传输单位(MTU)。 |
String |
getName() 获取此网络接口的名称。 |
static Enumeration<NetworkInterface> |
getNetworkInterfaces() 返回此机器上的所有接口。 |
NetworkInterface |
getParent() 如果此接口是子接口,则返回此接口的父网络接口;如果它是物理(非虚拟)接口或没有父接口,则返回 |
Enumeration<NetworkInterface> |
getSubInterfaces() 使用连接到此网络接口的所有子接口(也称为虚拟接口)获取枚举。 |
int |
hashCode() 返回对象的哈希码值。 |
boolean |
isLoopback() 返回网络接口是否为回送接口。 |
boolean |
isPointToPoint() 返回网络接口是否是点对点接口。 |
boolean |
isUp() 返回网络接口是否已启动并正在运行。 |
boolean |
isVirtual() 返回此接口是否为虚拟接口(也称为子接口)。 |
boolean |
supportsMulticast() 返回网络接口是否支持多播。 |
String |
toString() 返回对象的字符串表示形式。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
boolean equals (Object obj)
将此对象与指定的对象进行比较。 当且仅当参数不是null
并且它表示与此对象相同的NetworkInterface时,结果为true
。
如果两个名称和addrs都相同,则两个 NetworkInterface
实例表示相同的NetworkInterface。
Parameters | |
---|---|
obj |
Object : the object to compare against. |
Returns | |
---|---|
boolean |
true if the objects are the same; false otherwise. |
也可以看看:
NetworkInterface getByIndex (int index)
根据其索引获取网络接口。
Parameters | |
---|---|
index |
int : an integer, the index of the interface |
Returns | |
---|---|
NetworkInterface |
the NetworkInterface obtained from its index, or null if there is no interface with such an index on the system |
Throws | |
---|---|
SocketException |
if an I/O error occurs. |
IllegalArgumentException |
if index has a negative value |
也可以看看:
NetworkInterface getByInetAddress (InetAddress addr)
搜索具有指定的Internet协议(IP)地址绑定的网络接口的便捷方法。
如果指定的IP地址绑定到多个网络接口,则未定义返回哪个网络接口。
Parameters | |
---|---|
addr |
InetAddress : The InetAddress to search with. |
Returns | |
---|---|
NetworkInterface |
A NetworkInterface or null if there is no network interface with the specified IP address. |
Throws | |
---|---|
SocketException |
If an I/O error occurs. |
NullPointerException |
If the specified address is null. |
NetworkInterface getByName (String name)
搜索具有指定名称的网络接口。
Parameters | |
---|---|
name |
String : The name of the network interface. |
Returns | |
---|---|
NetworkInterface |
A NetworkInterface with the specified name, or null if there is no network interface with the specified name. |
Throws | |
---|---|
SocketException |
If an I/O error occurs. |
NullPointerException |
If the specified name is null. |
String getDisplayName ()
获取此网络接口的显示名称。 显示名称是描述网络设备的人类可读字符串。
Returns | |
---|---|
String |
a non-empty string representing the display name of this network interface, or null if no display name is available. |
byte[] getHardwareAddress ()
返回接口的硬件地址(通常是MAC),如果它有一个,并且可以根据当前权限访问它。 如果设置了安全管理器,则调用者必须具有权限NetPermission
(“getNetworkInformation”)。
Returns | |
---|---|
byte[] |
a byte array containing the address, or null if the address doesn't exist, is not accessible or a security manager is set and the caller does not have the permission NetPermission("getNetworkInformation") |
Throws | |
---|---|
SocketException |
if an I/O error occurs. |
int getIndex ()
返回此网络接口的索引。 索引是一个大于或等于零的整数,或者对于未知的-1
。 这是一个系统特定的值,具有相同名称的接口在不同的机器上可以有不同的索引。
Returns | |
---|---|
int |
the index of this network interface or -1 if the index is unknown |
也可以看看:
Enumeration<InetAddress> getInetAddresses ()
便捷方法返回一个Enumeration,其中包含绑定到此网络接口的所有或部分InetAddress。
如果有安全管理器,则为每个InetAddress调用其方法checkConnect
。 只有InetAddresses checkConnect
不会抛出SecurityException将在枚举中返回。 但是,如果调用方拥有NetPermission
(“getNetworkInformation”)权限,则返回所有InetAddress。
Returns | |
---|---|
Enumeration<InetAddress> |
an Enumeration object with all or a subset of the InetAddresses bound to this network interface |
List<InterfaceAddress> getInterfaceAddresses ()
获取此网络接口的全部或部分 InterfaceAddresses
的列表。
如果有安全管理器,则为每个InterfaceAddress使用InetAddress调用其checkConnect
方法。 只有checkConnect
不引发SecurityException的InterfaceAddresses才会返回到列表中。
Returns | |
---|---|
List<InterfaceAddress> |
a List object with all or a subset of the InterfaceAddresss of this network interface |
int getMTU ()
返回此接口的最大传输单位(MTU)。
Returns | |
---|---|
int |
the value of the MTU for that interface. |
Throws | |
---|---|
SocketException |
if an I/O error occurs. |
String getName ()
获取此网络接口的名称。
Returns | |
---|---|
String |
the name of this network interface |
Enumeration<NetworkInterface> getNetworkInterfaces ()
返回此机器上的所有接口。 如果在此机器上找不到网络接口,则返回null。 注意:可以使用getNetworkInterfaces()+ getInetAddresses()来获取此节点的所有IP地址
Returns | |
---|---|
Enumeration<NetworkInterface> |
an Enumeration of NetworkInterfaces found on this machine |
Throws | |
---|---|
SocketException |
if an I/O error occurs. |
NetworkInterface getParent ()
如果这是一个子接口,则返回此接口的父网络接口;如果它是物理(非虚拟)接口或没有父接口,则返回 null
。
Returns | |
---|---|
NetworkInterface |
The NetworkInterface this interface is attached to. |
Enumeration<NetworkInterface> getSubInterfaces ()
使用连接到此网络接口的所有子接口(也称为虚拟接口)获取枚举。
例如,eth0:1将是eth0的子接口。
Returns | |
---|---|
Enumeration<NetworkInterface> |
an Enumeration object with all of the subinterfaces of this network interface |
int hashCode ()
返回对象的哈希码值。 为了散列表的好处而支持该方法,例如由HashMap
提供的HashMap
。
一般合同 hashCode
是:
hashCode
method must consistently return the same integer, provided no information used in equals
comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. equals(Object)
method, then calling the hashCode
method on each of the two objects must produce the same integer result. equals(java.lang.Object)
method, then calling the hashCode
method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables. 尽可能合理实用,类Object
定义的hashCode方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java TM编程语言不需要此实现技术。)
Returns | |
---|---|
int |
a hash code value for this object. |
boolean isLoopback ()
返回网络接口是否为回送接口。
Returns | |
---|---|
boolean |
true if the interface is a loopback interface. |
Throws | |
---|---|
SocketException |
if an I/O error occurs. |
boolean isPointToPoint ()
返回网络接口是否是点对点接口。 典型的点对点接口将通过调制解调器连接到PPP。
Returns | |
---|---|
boolean |
true if the interface is a point to point interface. |
Throws | |
---|---|
SocketException |
if an I/O error occurs. |
boolean isUp ()
返回网络接口是否已启动并正在运行。
Returns | |
---|---|
boolean |
true if the interface is up and running. |
Throws | |
---|---|
SocketException |
if an I/O error occurs. |
boolean isVirtual ()
返回此接口是否为虚拟接口(也称为子接口)。 在某些系统上,虚拟接口是作为物理接口的子节点创建的接口,并且具有不同的设置(如地址或MTU)。 通常,接口的名称将是父项的名称,后跟冒号(:)和标识子项的数字,因为可能有多个虚拟接口连接到单个物理接口。
Returns | |
---|---|
boolean |
true if this interface is a virtual interface. |
boolean supportsMulticast ()
返回网络接口是否支持多播。
Returns | |
---|---|
boolean |
true if the interface supports Multicasting. |
Throws | |
---|---|
SocketException |
if an I/O error occurs. |
String toString ()
返回对象的字符串表示形式。 通常, toString
方法将返回一个“文本表示”此对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
类Object
的toString
方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |