java.lang.Object java.net.NetworkInterface
public final class NetworkInterface
此类表示一个由名称和分配给此接口的 IP 地址列表组成的网络接口。它用于标识加入多播组的本地接口。 接口通常是按名称(如 "le0")区分的。
方法摘要 | |
---|---|
boolean |
equals(Object obj) 将此对象与指定对象比较。 |
static NetworkInterface |
getByInetAddress(InetAddress addr) 一个便捷方法,搜索绑定了指定 Internet 协议 (IP) 地址的网络接口。 |
static NetworkInterface |
getByName(String name) 搜索具有指定名称的网络接口。 |
String |
getDisplayName() 获取此网络接口的显示名称。 |
byte[] |
getHardwareAddress() 如果存在硬件地址并可以使用给定的当前权限访问,则返回该硬件地址(通常是 MAC)。 |
Enumeration<InetAddress> |
getInetAddresses() 一个便捷方法,返回一个具有绑定到此网络接口全部或部分 InetAddress 的 Enumeration。 |
List<InterfaceAddress> |
getInterfaceAddresses() 获取此网络接口的全部或部分 InterfaceAddresses 所组成的列表。 |
int |
getMTU() 返回此接口的最大传输单元(Maximum Transmission Unit,MTU)。 |
String |
getName() 获取此网络接口的名称。 |
static Enumeration<NetworkInterface> |
getNetworkInterfaces() 返回此机器上的所有接口。 |
NetworkInterface |
getParent() 如果此接口是子接口,则返回它的父 NetworkInterface;如果它是物理(非虚拟)接口或没有父接口,则返回 null 。 |
Enumeration<NetworkInterface> |
getSubInterfaces() 获取具有连接到此网络接口的所有子接口(也称虚拟接口)的 Enumeration。 |
int |
hashCode() 返回该对象的哈希码值。 |
boolean |
isLoopback() 返回网络接口是否是回送接口。 |
boolean |
isPointToPoint() 返回网络接口是否是点对点接口。 |
boolean |
isUp() 返回网络接口是否已经开启并运行。 |
boolean |
isVirtual() 返回此接口是否是虚拟接口(也称为子接口)。 |
boolean |
supportsMulticast() 返回网络接口是否支持多址广播。 |
String |
toString() 返回该对象的字符串表示。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
方法详细信息 |
---|
public String getName()
public Enumeration<InetAddress> getInetAddresses()
如果存在安全管理器,则对每个 InetAddress 调用其 checkConnect
方法。只有 checkConnect
不抛出 SecurityException 的 InetAddress 才会在 Enumeration 中返回。
public List<InterfaceAddress> getInterfaceAddresses()
InterfaceAddresses
所组成的列表。
如果存在安全管理器,则使用 InetAddress 对每个 InterfaceAddress 调用其 checkConnect
方法。只有 checkConnect
不抛出 SecurityException 的 InterfaceAddresses 才会在列表中返回。
List
对象,具有此网络接口的全部或部分 InterfaceAddresss
public Enumeration<NetworkInterface> getSubInterfaces()
例如,eth0:1 是 eth0 的子接口。
public NetworkInterface getParent()
null
。
NetworkInterface
。
public String getDisplayName()
public static NetworkInterface getByName(String name) throws SocketException
name
- 网络接口的名称。
SocketException
- 如果发生 I/O 错误。
NullPointerException
- 如果指定的名称为
null。
public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException
如果指定的 IP 地址被绑定到多个网络接口,则返回哪个网络接口是不确定的。
addr
- 用于搜索的
InetAddress。
SocketException
- 如果发生 I/O 错误。
NullPointerException
- 如果指定的地址为
null。
public static Enumeration<NetworkInterface> getNetworkInterfaces() throws SocketException
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
null
。
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。
obj
- 要与之比较的对象。
true
;否则,返回
false
。
InetAddress.getAddress()
public int hashCode()
Object
复制的描述
java.util.Hashtable
提供的哈希表)的性能。
hashCode
的常规协定是:
hashCode
方法都必须生成相同的整数结果。 Object.equals(java.lang.Object)
方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。 实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
Object
复制的描述
toString
方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object
类的 toString
方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@
”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())