鴻蒙OS NetworkInterface

2022-06-10 17:06 更新

NetworkInterface

java.lang.Object

|---java.net.NetworkInterface

public final class NetworkInterface
extends Object

此類表示由名稱和分配給該接口的 IP 地址列表組成的網(wǎng)絡(luò)接口。 它用于標(biāo)識加入多播組的本地接口。 接口通常以諸如“l(fā)e0”之類的名稱而聞名。

方法總結(jié)

修飾符和類型 方法 描述
boolean equals(Object obj) 將此對象與指定對象進(jìn)行比較。
static NetworkInterface getByIndex(int index) 獲取給定索引的網(wǎng)絡(luò)接口。
static NetworkInterface getByInetAddress(InetAddress addr) 搜索綁定了指定 Internet 協(xié)議 (IP) 地址的網(wǎng)絡(luò)接口的便捷方法。
static NetworkInterface getByName(String name) 搜索具有指定名稱的網(wǎng)絡(luò)接口。
String getDisplayName() 獲取此網(wǎng)絡(luò)接口的顯示名稱。
byte[] getHardwareAddress() 返回接口的硬件地址(通常是 MAC),如果它有一個并且在當(dāng)前權(quán)限下可以訪問它。
int getIndex() 返回此網(wǎng)絡(luò)接口的索引。
EnumerationInetAddress getInetAddresses() 返回 Enumeration 的便捷方法,其中所有或部分 InetAddresses 綁定到此網(wǎng)絡(luò)接口。
ListInterfaceAddress getInterfaceAddresses() 獲取此網(wǎng)絡(luò)接口的所有或部分 InterfaceAddresses 的列表。
int getMTU() 返回此接口的最大傳輸單元 (MTU)。
String getName() 獲取此網(wǎng)絡(luò)接口的名稱。
static EnumerationNetworkInterface getNetworkInterfaces() 返回這臺機(jī)器上的所有接口。
NetworkInterface getParent() 如果這是子接口,則返回此接口的父 NetworkInterface;如果它是物理(非虛擬)接口或沒有父接口,則返回 null。
EnumerationNetworkInterface getSubInterfaces() 獲取連接到此網(wǎng)絡(luò)接口的所有子接口(也稱為虛擬接口)的枚舉。
int hashCode() 返回對象的哈希碼值。
boolean isLoopback() 返回網(wǎng)絡(luò)接口是否為環(huán)回接口。
boolean isPointToPoint() 返回網(wǎng)絡(luò)接口是否為點(diǎn)對點(diǎn)接口。
boolean isUp() 返回網(wǎng)絡(luò)接口是否已啟動并正在運(yùn)行。
boolean isVirtual() 返回此接口是否為虛擬接口(也稱為子接口)。
boolean supportsMulticast() 返回網(wǎng)絡(luò)接口是否支持多播。
String toString() 返回對象的字符串表示形式。
從類 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

方法詳情

getName

public String getName()

獲取此網(wǎng)絡(luò)接口的名稱。

返回:

此網(wǎng)絡(luò)接口的名稱

getInetAddresses

public EnumerationInetAddress getInetAddresses()

返回 Enumeration 的便捷方法,其中所有或部分 InetAddresses 綁定到此網(wǎng)絡(luò)接口。

如果有安全管理器,則為每個 InetAddress 調(diào)用其 checkConnect 方法。 只有 checkConnect 未引發(fā) SecurityException 的 InetAddress 才會在枚舉中返回。 但是,如果調(diào)用者具有 NetPermission("getNetworkInformation") 權(quán)限,則返回所有 InetAddresses。

返回:

一個 Enumeration 對象,其中所有或部分 InetAddresses 綁定到此網(wǎng)絡(luò)接口

getInterfaceAddresses

public ListInterfaceAddress getInterfaceAddresses()

獲取此網(wǎng)絡(luò)接口的所有或部分 InterfaceAddresses 的列表。

如果有安全管理器,則使用每個 InterfaceAddress 的 InetAddress 調(diào)用其 checkConnect 方法。 只有 checkConnect 沒有拋出 SecurityException 的 InterfaceAddress 才會在列表中返回。

返回:

具有此網(wǎng)絡(luò)接口的全部或部分 InterfaceAddress 的 List 對象

getSubInterfaces

public EnumerationNetworkInterface getSubInterfaces()

獲取連接到此網(wǎng)絡(luò)接口的所有子接口(也稱為虛擬接口)的枚舉。

例如 eth0:1 將是 eth0 的子接口。

返回:

具有此網(wǎng)絡(luò)接口的所有子接口的 Enumeration 對象

getParent

public NetworkInterface getParent()

如果這是子接口,則返回此接口的父 NetworkInterface;如果它是物理(非虛擬)接口或沒有父接口,則返回 null。

返回:

此接口附加到的 NetworkInterface。

getIndex

public int getIndex()

返回此網(wǎng)絡(luò)接口的索引。 索引是大于或等于 0 的整數(shù),或 -1 表示未知。 這是一個系統(tǒng)特定的值,同名的接口在不同的機(jī)器上可以有不同的索引。

返回:

此網(wǎng)絡(luò)接口的索引,如果索引未知,則為 -1

getDisplayName

public String getDisplayName()

獲取此網(wǎng)絡(luò)接口的顯示名稱。 顯示名稱是描述網(wǎng)絡(luò)設(shè)備的人類可讀字符串。

返回:

表示此網(wǎng)絡(luò)接口的顯示名稱的非空字符串,如果沒有可用的顯示名稱,則返回 null。

getByName

public static NetworkInterface getByName(String name) throws SocketException

搜索具有指定名稱的網(wǎng)絡(luò)接口。

參數(shù):

參數(shù)名稱 參數(shù)描述
name 網(wǎng)絡(luò)接口的名稱。

返回:

具有指定名稱的 NetworkInterface,如果沒有具有指定名稱的網(wǎng)絡(luò)接口,則為 null。

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。
NullPointerException 如果指定的名稱為空。

getByIndex

public static NetworkInterface getByIndex(int index) throws SocketException

獲取給定索引的網(wǎng)絡(luò)接口。

參數(shù):

Parameter Name Parameter Description
index an integer, the index of the interface

返回:

從其索引獲得的 NetworkInterface,如果系統(tǒng)上沒有具有此類索引的接口,則為 null

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。
IllegalArgumentException 如果索引為負(fù)值

getByInetAddress

public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException

搜索綁定了指定 Internet 協(xié)議 (IP) 地址的網(wǎng)絡(luò)接口的便捷方法。

如果指定的 IP 地址綁定到多個網(wǎng)絡(luò)接口,則未定義返回哪個網(wǎng)絡(luò)接口。

參數(shù):

參數(shù)名稱 參數(shù)描述
addr The InetAddress to search with.

返回:

如果沒有具有指定 IP 地址的網(wǎng)絡(luò)接口,則為 NetworkInterface 或 null。

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。
NullPointerException 如果指定的地址為空。

getNetworkInterfaces

public static EnumerationNetworkInterface getNetworkInterfaces() throws SocketException

返回這臺機(jī)器上的所有接口。 Enumeration 包含至少一個元素,可能表示一個僅支持本機(jī)實(shí)體之間通信的環(huán)回接口。 注意:可以使用 getNetworkInterfaces()+getInetAddresses() 獲取該節(jié)點(diǎn)的所有 IP 地址

返回:

在這臺機(jī)器上找到的 NetworkInterfaces 枚舉

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。

isUp

public boolean isUp() throws SocketException

返回網(wǎng)絡(luò)接口是否已啟動并正在運(yùn)行。

返回:

如果接口已啟動并正在運(yùn)行,則為 true。

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。

isLoopback

public boolean isLoopback() throws SocketException

返回網(wǎng)絡(luò)接口是否為環(huán)回接口。

返回:

如果接口是環(huán)回接口,則為 true。

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。

isPointToPoint

public boolean isPointToPoint() throws SocketException

返回網(wǎng)絡(luò)接口是否為點(diǎn)對點(diǎn)接口。 典型的點(diǎn)對點(diǎn)接口是通過調(diào)制解調(diào)器的 PPP 連接。

返回:

如果接口是點(diǎn)對點(diǎn)接口,則為 true。

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。

supportsMulticast

public boolean supportsMulticast() throws SocketException

返回網(wǎng)絡(luò)接口是否支持多播。

返回:

如果接口支持多播,則為 true。

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。

getHardwareAddress

public byte[] getHardwareAddress() throws SocketException

返回接口的硬件地址(通常是 MAC),如果它有一個并且在當(dāng)前權(quán)限下可以訪問它。 如果設(shè)置了安全管理器,則調(diào)用者必須具有 NetPermission("getNetworkInformation") 權(quán)限。

返回:

包含地址的字節(jié)數(shù)組,如果地址不存在,則為 null,無法訪問或設(shè)置了安全管理器并且調(diào)用者沒有權(quán)限 NetPermission("getNetworkInformation")

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。

getMTU

public int getMTU() throws SocketException

返回此接口的最大傳輸單元 (MTU)。

返回:

該接口的 MTU 值。

Throws:

Throw名稱 Throw描述
SocketException 如果發(fā)生 I/O 錯誤。

isVirtual

public boolean isVirtual()

返回此接口是否為虛擬接口(也稱為子接口)。 在某些系統(tǒng)上,虛擬接口是作為物理接口的子接口創(chuàng)建的接口,并具有不同的設(shè)置(如地址或 MTU)。 通常接口的名稱是父接口的名稱,后跟一個冒號 (:) 和一個標(biāo)識子接口的數(shù)字,因?yàn)榭梢杂卸鄠€虛擬接口連接到單個物理接口。

返回:

如果此接口是虛擬接口,則為 true。

equals

public boolean equals(Object obj)

將此對象與指定對象進(jìn)行比較。 當(dāng)且僅當(dāng)參數(shù)不為 null 并且它表示與此對象相同的 NetworkInterface 時,結(jié)果才為真。

如果名稱和地址都相同,則兩個 NetworkInterface 實(shí)例表示相同的 NetworkInterface。

覆蓋:

類 Object 中的等于

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 要比較的對象。

返回:

如果對象相同,則為 true; 否則為false。

hashCode

public int hashCode()

從類復(fù)制的描述:對象

返回對象的哈希碼值。 支持這種方法是為了有利于哈希表,例如 HashMap 提供的那些。

hashCode 的一般合約是:

  • 每當(dāng)在 Java 應(yīng)用程序執(zhí)行期間對同一對象多次調(diào)用時,hashCode 方法必須始終返回相同的整數(shù),前提是沒有修改對象上相等比較中使用的信息。 該整數(shù)不需要從應(yīng)用程序的一次執(zhí)行到同一應(yīng)用程序的另一次執(zhí)行保持一致。
  • 如果兩個對象根據(jù) equals(Object) 方法相等,則對兩個對象中的每一個調(diào)用 hashCode 方法必須產(chǎn)生相同的整數(shù)結(jié)果。
  • 如果根據(jù) Object.equals(java.lang.Object) 方法,如果兩個對象不相等,則不要求對兩個對象中的每一個調(diào)用 hashCode 方法必須產(chǎn)生不同的整數(shù)結(jié)果。 但是,程序員應(yīng)該意識到,為不相等的對象生成不同的整數(shù)結(jié)果可能會提高哈希表的性能。

在合理可行的情況下,由 Object 類定義的 hashCode 方法確實(shí)為不同的對象返回不同的整數(shù)。 (這通常通過將對象的內(nèi)部地址轉(zhuǎn)換為整數(shù)來實(shí)現(xiàn),但 Java? 編程語言不需要這種實(shí)現(xiàn)技術(shù)。)

覆蓋:

類 Object 中的 hashCode

返回:

此對象的哈希碼值。

toString

public String toString()

從類復(fù)制的描述:對象

返回對象的字符串表示形式。 通常,toString 方法返回一個“以文本方式表示”該對象的字符串。 結(jié)果應(yīng)該是一個簡潔但信息豐富的表示,易于人們閱讀。 建議所有子類重寫此方法。

Object 類的 toString 方法返回一個字符串,該字符串由對象作為其實(shí)例的類的名稱、at 符號字符“@”和對象哈希碼的無符號十六進(jìn)制表示形式組成。 換句話說,此方法返回一個等于以下值的字符串:

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

覆蓋:

類 Object 中的 toString

返回:

對象的字符串表示形式。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號