阅读(1731) (0)

鸿蒙OS NetworkInterface

2022-06-06 16:30:45 更新

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

返回:

对象的字符串表示形式。