Most visited

Recently visited

Added in API level 1

NetworkInterface

public final class NetworkInterface
extends Object

java.lang.Object
   ↳ java.net.NetworkInterface


该类表示一个网络接口,由一个名称和一个分配给该接口的IP地址列表组成。 它用于标识组播组加入的本地接口。 接口通常通过诸如“le0”等名称而知道。

Summary

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()

获取此网络接口的全部或部分 InterfaceAddresses的列表。

int getMTU()

返回此接口的最大传输单位(MTU)。

String getName()

获取此网络接口的名称。

static Enumeration<NetworkInterface> getNetworkInterfaces()

返回此机器上的所有接口。

NetworkInterface getParent()

如果此接口是子接口,则返回此接口的父网络接口;如果它是物理(非虚拟)接口或没有父接口,则返回 null

Enumeration<NetworkInterface> getSubInterfaces()

使用连接到此网络接口的所有子接口(也称为虚拟接口)获取枚举。

int hashCode()

返回对象的哈希码值。

boolean isLoopback()

返回网络接口是否为回送接口。

boolean isPointToPoint()

返回网络接口是否是点对点接口。

boolean isUp()

返回网络接口是否已启动并正在运行。

boolean isVirtual()

返回此接口是否为虚拟接口(也称为子接口)。

boolean supportsMulticast()

返回网络接口是否支持多播。

String toString()

返回对象的字符串表示形式。

Inherited methods

From class java.lang.Object

Public methods

equals

Added in API level 1
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.

也可以看看:

getByIndex

Added in API level 19
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

也可以看看:

getByInetAddress

Added in API level 1
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.

getByName

Added in API level 1
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.

getDisplayName

Added in API level 1
String getDisplayName ()

获取此网络接口的显示名称。 显示名称是描述网络设备的人类可读字符串。

Returns
String a non-empty string representing the display name of this network interface, or null if no display name is available.

getHardwareAddress

Added in API level 9
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.

getIndex

Added in API level 19
int getIndex ()

返回此网络接口的索引。 索引是一个大于或等于零的整数,或者对于未知的-1 这是一个系统特定的值,具有相同名称的接口在不同的机器上可以有不同的索引。

Returns
int the index of this network interface or -1 if the index is unknown

也可以看看:

getInetAddresses

Added in API level 1
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

getInterfaceAddresses

Added in API level 9
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

getMTU

Added in API level 9
int getMTU ()

返回此接口的最大传输单位(MTU)。

Returns
int the value of the MTU for that interface.
Throws
SocketException if an I/O error occurs.

getName

Added in API level 1
String getName ()

获取此网络接口的名称。

Returns
String the name of this network interface

getNetworkInterfaces

Added in API level 1
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.

getParent

Added in API level 9
NetworkInterface getParent ()

如果这是一个子接口,则返回此接口的父网络接口;如果它是物理(非虚拟)接口或没有父接口,则返回 null

Returns
NetworkInterface The NetworkInterface this interface is attached to.

getSubInterfaces

Added in API level 9
Enumeration<NetworkInterface> getSubInterfaces ()

使用连接到此网络接口的所有子接口(也称为虚拟接口)获取枚举。

例如,eth0:1将是eth0的子接口。

Returns
Enumeration<NetworkInterface> an Enumeration object with all of the subinterfaces of this network interface

hashCode

Added in API level 1
int hashCode ()

返回对象的哈希码值。 为了散列表的好处而支持该方法,例如由HashMap提供的HashMap

一般合同 hashCode是:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the 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.
  • If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the 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.

isLoopback

Added in API level 9
boolean isLoopback ()

返回网络接口是否为回送接口。

Returns
boolean true if the interface is a loopback interface.
Throws
SocketException if an I/O error occurs.

isPointToPoint

Added in API level 9
boolean isPointToPoint ()

返回网络接口是否是点对点接口。 典型的点对点接口将通过调制解调器连接到PPP。

Returns
boolean true if the interface is a point to point interface.
Throws
SocketException if an I/O error occurs.

isUp

Added in API level 9
boolean isUp ()

返回网络接口是否已启动并正在运行。

Returns
boolean true if the interface is up and running.
Throws
SocketException if an I/O error occurs.

isVirtual

Added in API level 9
boolean isVirtual ()

返回此接口是否为虚拟接口(也称为子接口)。 在某些系统上,虚拟接口是作为物理接口的子节点创建的接口,并且具有不同的设置(如地址或MTU)。 通常,接口的名称将是父项的名称,后跟冒号(:)和标识子项的数字,因为可能有多个虚拟接口连接到单个物理接口。

Returns
boolean true if this interface is a virtual interface.

supportsMulticast

Added in API level 9
boolean supportsMulticast ()

返回网络接口是否支持多播。

Returns
boolean true if the interface supports Multicasting.
Throws
SocketException if an I/O error occurs.

toString

Added in API level 1
String toString ()

返回对象的字符串表示形式。 通常, toString方法将返回一个“文本表示”此对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。

ObjecttoString方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @ ”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.

Hooray!