NetworkInterface
java.lang.Object
|—java.net.NetworkInterface
public final class NetworkInterface
extends Object
此类表示由名称和分配给该接口的 IP 地址列表组成的网络接口。 它用于标识加入多播组的本地接口。 接口通常以诸如“le0”之类的名称而闻名。
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
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() | 返回此网络接口的索引。 |
EnumerationInetAddress | getInetAddresses() | 返回 Enumeration 的便捷方法,其中所有或部分 InetAddresses 绑定到此网络接口。 |
ListInterfaceAddress | getInterfaceAddresses() | 获取此网络接口的所有或部分 InterfaceAddresses 的列表。 |
int | getMTU() | 返回此接口的最大传输单元 (MTU)。 |
String | getName() | 获取此网络接口的名称。 |
static EnumerationNetworkInterface | getNetworkInterfaces() | 返回这台机器上的所有接口。 |
NetworkInterface | getParent() | 如果这是子接口,则返回此接口的父 NetworkInterface;如果它是物理(非虚拟)接口或没有父接口,则返回 null。 |
EnumerationNetworkInterface | getSubInterfaces() | 获取连接到此网络接口的所有子接口(也称为虚拟接口)的枚举。 |
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 |
方法详情
getName
public String getName()
获取此网络接口的名称。
返回:
此网络接口的名称
getInetAddresses
public EnumerationInetAddress getInetAddresses()
返回 Enumeration 的便捷方法,其中所有或部分 InetAddresses 绑定到此网络接口。
如果有安全管理器,则为每个 InetAddress 调用其 checkConnect 方法。 只有 checkConnect 未引发 SecurityException 的 InetAddress 才会在枚举中返回。 但是,如果调用者具有 NetPermission(“getNetworkInformation”) 权限,则返回所有 InetAddresses。
返回:
一个 Enumeration 对象,其中所有或部分 InetAddresses 绑定到此网络接口
getInterfaceAddresses
public ListInterfaceAddress getInterfaceAddresses()
获取此网络接口的所有或部分 InterfaceAddresses 的列表。
如果有安全管理器,则使用每个 InterfaceAddress 的 InetAddress 调用其 checkConnect 方法。 只有 checkConnect 没有抛出 SecurityException 的 InterfaceAddress 才会在列表中返回。
返回:
具有此网络接口的全部或部分 InterfaceAddress 的 List 对象
getSubInterfaces
public EnumerationNetworkInterface getSubInterfaces()
获取连接到此网络接口的所有子接口(也称为虚拟接口)的枚举。
例如 eth0:1 将是 eth0 的子接口。
返回:
具有此网络接口的所有子接口的 Enumeration 对象
getParent
public NetworkInterface getParent()
如果这是子接口,则返回此接口的父 NetworkInterface;如果它是物理(非虚拟)接口或没有父接口,则返回 null。
返回:
此接口附加到的 NetworkInterface。
getIndex
public int getIndex()
返回此网络接口的索引。 索引是大于或等于 0 的整数,或 -1 表示未知。 这是一个系统特定的值,同名的接口在不同的机器上可以有不同的索引。
返回:
此网络接口的索引,如果索引未知,则为 -1
getDisplayName
public String getDisplayName()
获取此网络接口的显示名称。 显示名称是描述网络设备的人类可读字符串。
返回:
表示此网络接口的显示名称的非空字符串,如果没有可用的显示名称,则返回 null。
getByName
public static NetworkInterface getByName(String name) throws SocketException
搜索具有指定名称的网络接口。
参数:
参数名称 | 参数描述 |
---|---|
name | 网络接口的名称。 |
返回:
具有指定名称的 NetworkInterface,如果没有具有指定名称的网络接口,则为 null。
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
NullPointerException | 如果指定的名称为空。 |
getByIndex
public static NetworkInterface getByIndex(int index) throws SocketException
获取给定索引的网络接口。
参数:
Parameter Name | Parameter Description |
---|---|
index | an integer, the index of the interface |
返回:
从其索引获得的 NetworkInterface,如果系统上没有具有此类索引的接口,则为 null
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
IllegalArgumentException | 如果索引为负值 |
getByInetAddress
public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException
搜索绑定了指定 Internet 协议 (IP) 地址的网络接口的便捷方法。
如果指定的 IP 地址绑定到多个网络接口,则未定义返回哪个网络接口。
参数:
参数名称 | 参数描述 |
---|---|
addr | The InetAddress to search with. |
返回:
如果没有具有指定 IP 地址的网络接口,则为 NetworkInterface 或 null。
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
NullPointerException | 如果指定的地址为空。 |
getNetworkInterfaces
public static EnumerationNetworkInterface getNetworkInterfaces() throws SocketException
返回这台机器上的所有接口。 Enumeration 包含至少一个元素,可能表示一个仅支持本机实体之间通信的环回接口。 注意:可以使用 getNetworkInterfaces()+getInetAddresses() 获取该节点的所有 IP 地址
返回:
在这台机器上找到的 NetworkInterfaces 枚举
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
isUp
public boolean isUp() throws SocketException
返回网络接口是否已启动并正在运行。
返回:
如果接口已启动并正在运行,则为 true。
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
isLoopback
public boolean isLoopback() throws SocketException
返回网络接口是否为环回接口。
返回:
如果接口是环回接口,则为 true。
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
isPointToPoint
public boolean isPointToPoint() throws SocketException
返回网络接口是否为点对点接口。 典型的点对点接口是通过调制解调器的 PPP 连接。
返回:
如果接口是点对点接口,则为 true。
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
supportsMulticast
public boolean supportsMulticast() throws SocketException
返回网络接口是否支持多播。
返回:
如果接口支持多播,则为 true。
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
getHardwareAddress
public byte[] getHardwareAddress() throws SocketException
返回接口的硬件地址(通常是 MAC),如果它有一个并且在当前权限下可以访问它。 如果设置了安全管理器,则调用者必须具有 NetPermission(“getNetworkInformation”) 权限。
返回:
包含地址的字节数组,如果地址不存在,则为 null,无法访问或设置了安全管理器并且调用者没有权限 NetPermission(“getNetworkInformation”)
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
getMTU
public int getMTU() throws SocketException
返回此接口的最大传输单元 (MTU)。
返回:
该接口的 MTU 值。
Throws:
Throw名称 | Throw描述 |
---|---|
SocketException | 如果发生 I/O 错误。 |
isVirtual
public boolean isVirtual()
返回此接口是否为虚拟接口(也称为子接口)。 在某些系统上,虚拟接口是作为物理接口的子接口创建的接口,并具有不同的设置(如地址或 MTU)。 通常接口的名称是父接口的名称,后跟一个冒号 (:) 和一个标识子接口的数字,因为可以有多个虚拟接口连接到单个物理接口。
返回:
如果此接口是虚拟接口,则为 true。
equals
public boolean equals(Object obj)
将此对象与指定对象进行比较。 当且仅当参数不为 null 并且它表示与此对象相同的 NetworkInterface 时,结果才为真。
如果名称和地址都相同,则两个 NetworkInterface 实例表示相同的 NetworkInterface。
覆盖:
类 Object 中的等于
参数:
参数名称 | 参数描述 |
---|---|
obj | 要比较的对象。 |
返回:
如果对象相同,则为 true; 否则为false。
hashCode
public int hashCode()
从类复制的描述:对象
返回对象的哈希码值。 支持这种方法是为了有利于哈希表,例如 HashMap 提供的那些。
hashCode 的一般合约是:
- 每当在 Java 应用程序执行期间对同一对象多次调用时,hashCode 方法必须始终返回相同的整数,前提是没有修改对象上相等比较中使用的信息。 该整数不需要从应用程序的一次执行到同一应用程序的另一次执行保持一致。
- 如果两个对象根据 equals(Object) 方法相等,则对两个对象中的每一个调用 hashCode 方法必须产生相同的整数结果。
- 如果根据 Object.equals(java.lang.Object) 方法,如果两个对象不相等,则不要求对两个对象中的每一个调用 hashCode 方法必须产生不同的整数结果。 但是,程序员应该意识到,为不相等的对象生成不同的整数结果可能会提高哈希表的性能。
在合理可行的情况下,由 Object 类定义的 hashCode 方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但 Java™ 编程语言不需要这种实现技术。)
覆盖:
类 Object 中的 hashCode
返回:
此对象的哈希码值。
toString
public String toString()
从类复制的描述:对象
返回对象的字符串表示形式。 通常,toString 方法返回一个“以文本方式表示”该对象的字符串。 结果应该是一个简洁但信息丰富的表示,易于人们阅读。 建议所有子类重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由对象作为其实例的类的名称、at 符号字符“@”和对象哈希码的无符号十六进制表示形式组成。 换句话说,此方法返回一个等于以下值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())
覆盖:
类 Object 中的 toString
返回:
对象的字符串表示形式。