新聞中心
Inet6Address

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了順城免費建站歡迎大家使用!
java.lang.Object
|---java.net.InetAddress
|---|---java.net.Inet6Address
public final class Inet6Address
extends InetAddress此類表示 Internet 協(xié)議版本 6 (IPv6) 地址。 由 RFC 2373 定義:IP 版本 6 尋址體系結(jié)構(gòu)。 IP 地址的文本表示用作方法輸入的 IPv6 地址的文本表示采用以下形式之一:
- 首選形式是 xxxx:x,其中 'x' 是地址的八個 16 位片段的十六進制值。這是完整的表格。例如,
請注意,不必在單個字段中寫入前導(dǎo)零。但是,每個字段中必須至少有一個數(shù)字,除非如下所述。
- 由于某些分配某些樣式的 IPv6 地址的方法,地址通常會包含長的零位字符串。為了使寫入包含零位的地址更容易,可以使用一種特殊的語法來壓縮零。使用“::”表示多組 16 位零。 “::”在一個地址中只能出現(xiàn)一次。 “::”也可用于壓縮地址中的前導(dǎo)和/或尾隨零。例如,
- 在處理 IPv4 和 IPv6 節(jié)點的混合環(huán)境時,有時更方便的另一種形式是 xxxd.d.d.d,其中 'x' 是六個高位 16 位的十六進制值地址片段,'d' 是標(biāo)準(zhǔn) IPv4 表示地址的四個低位 8 位片段的十進制值,例如,
其中 "::FFFF:d.d.d.d" 和 "::d.d.d.d" 分別是 IPv4 映射的 IPv6 地址和 IPv4 兼容的 IPv6 地址的一般形式。請注意,IPv4 部分必須采用“d.d.d.d”形式。以下表格無效:
以下表格:
是有效的,但是它是與 IPv4 兼容的 IPv6 地址的非常規(guī)表示,
而“::d”對應(yīng)于通用 IPv6 地址“0:0:0:0:0:0:0:d”。
對于將文本表示形式作為輸出值返回的方法,使用完整形式。 Inet6Address 將返回完整的形式,因為它在與其他文本數(shù)據(jù)結(jié)合使用時是明確的。
特殊 IPv6 地址
IPv6 范圍地址的文本表示
如上所述的 IPv6 地址的文本表示可以擴展為指定 IPv6 范圍的地址。 [draft-ietf-ipngwg-scoping-arch-04.txt] 中描述了對基本尋址架構(gòu)的這種擴展。
因為鏈路本地地址和站點本地地址是非全局地址,所以不同的主機可能具有相同的目標(biāo)地址,并且可以通過同一源系統(tǒng)上的不同接口訪問。在這種情況下,始發(fā)系統(tǒng)被稱為連接到同一范圍的多個區(qū)域。為了區(qū)分哪個是預(yù)期的目標(biāo)區(qū)域,可以將區(qū)域標(biāo)識符(或 scope_id)附加到 IPv6 地址。
指定 scope_id 的一般格式如下:
IPv6 地址%scope_id
IPv6 地址是如上所述的文字 IPv6 地址。 scope_id 指的是本地系統(tǒng)上的一個接口,它可以通過兩種方式指定。
- 作為數(shù)字標(biāo)識符。 這必須是一個正整數(shù),用于標(biāo)識系統(tǒng)理解的特定接口和范圍。 通常,數(shù)值可以通過系統(tǒng)上的管理工具來確定。 每個接口可能有多個值,每個范圍一個。 如果未指定范圍,則使用的默認(rèn)值為零。
- 作為字符串。 這必須是 NetworkInterface.getName() 針對相關(guān)特定接口返回的確切字符串。 以這種方式創(chuàng)建 Inet6Address 時,通過查詢相關(guān) NetworkInterface 在創(chuàng)建對象時確定數(shù)字范圍 ID。
另請注意,數(shù)字 scope_id 可以從 NetworkInterface 類返回的 Inet6Address 實例中檢索。 這可用于找出系統(tǒng)上配置的當(dāng)前范圍 ID。
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| boolean | equals(Object obj) | 將此對象與指定對象進行比較。 |
| byte[] | getAddress() | 返回此 InetAddress 對象的原始 IP 地址。 |
| static Inet6Address | getByAddress(String host, byte[] addr, int scope_id) | 以 InetAddress#getByAddress(String,byte[]) 的確切方式創(chuàng)建 Inet6Address,但 IPv6 scope_id 設(shè)置為給定的數(shù)值。 |
| static Inet6Address | getByAddress(String host, byte[] addr, NetworkInterface nif) | 以 InetAddress#getByAddress(String,byte[]) 的確切方式創(chuàng)建 Inet6Address,除了 IPv6 scope_id 設(shè)置為與 addr 中指定的地址類型的給定接口對應(yīng)的值。 |
| String | getHostAddress() | 以文本形式返回 IP 地址字符串。 |
| NetworkInterface | getScopedInterface() | 如果此實例是使用作用域接口創(chuàng)建的,則返回作用域接口。 |
| int | getScopeId() | 如果此實例與接口關(guān)聯(lián),則返回數(shù)字 scopeId。 |
| int | hashCode() | 返回此 IP 地址的哈希碼。 |
| boolean | isAnyLocalAddress() | 檢查 InetAddress 是否在通配符地址中的實用程序。 |
| boolean | isIPv4CompatibleAddress() | 檢查 InetAddress 是否為與 IPv4 兼容的 IPv6 地址的實用程序。 |
| boolean | isLinkLocalAddress() | 檢查 InetAddress 是否為鏈接本地地址的實用程序。 |
| boolean | isLoopbackAddress() | 檢查 InetAddress 是否為環(huán)回地址的實用程序。 |
| boolean | isMCGlobal() | 檢查多播地址是否具有全局范圍的實用程序。 |
| boolean | isMCLinkLocal() | 檢查多播地址是否具有鏈接范圍的實用程序。 |
| boolean | isMCNodeLocal() | 檢查多播地址是否具有節(jié)點范圍的實用程序。 |
| boolean | isMCOrgLocal() | 檢查多播地址是否具有組織范圍的實用程序。 |
| boolean | isMCSiteLocal() | 檢查多播地址是否具有站點范圍的實用程序。 |
| boolean | isMulticastAddress() | 檢查 InetAddress 是否為 IP 多播地址的實用程序。 |
| boolean | isSiteLocalAddress() | 檢查 InetAddress 是否為站點本地地址的實用程序例程。 |
| 從類 java.net.InetAddress 繼承的方法 |
|---|
| getAllByName, getByAddress, getByAddress, getByName, getCanonicalHostName, getHostName, getLocalHost, getLoopbackAddress, isReachable, isReachable, toString |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
方法詳情
getByAddress
public static Inet6Address getByAddress(String host, byte[] addr, NetworkInterface nif) throws UnknownHostException
以 InetAddress#getByAddress(String,byte[]) 的確切方式創(chuàng)建 Inet6Address,除了 IPv6 scope_id 設(shè)置為與 addr 中指定的地址類型的給定接口對應(yīng)的值。 如果給定接口沒有為給定地址類型(例如鏈接本地或站點本地)分配數(shù)字 scope_id,則調(diào)用將失敗并返回 UnknownHostException。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| host | 指定的主機 |
| addr | 網(wǎng)絡(luò)字節(jié)順序的原始 IP 地址 |
| nif | 此地址必須關(guān)聯(lián)的接口。 |
返回:
從原始 IP 地址創(chuàng)建的 Inet6Address 對象。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnknownHostException | 如果 IP 地址的長度非法,或者接口沒有為給定的地址類型分配數(shù)字 scope_id。 |
getByAddress
public static Inet6Address getByAddress(String host, byte[] addr, int scope_id) throws UnknownHostException
以 InetAddress#getByAddress(String,byte[]) 的確切方式創(chuàng)建 Inet6Address,但 IPv6 scope_id 設(shè)置為給定的數(shù)值。 不檢查 scope_id 以確定它是否對應(yīng)于系統(tǒng)上的任何接口。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| host | 指定的主機 |
| addr | 網(wǎng)絡(luò)字節(jié)順序的原始 IP 地址 |
| scope_id | 地址的數(shù)字 scope_id。 |
返回:
從原始 IP 地址創(chuàng)建的 Inet6Address 對象。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnknownHostException | 如果 IP 地址的長度非法。 |
isMulticastAddress
public boolean isMulticastAddress()
檢查 InetAddress 是否為 IP 多播地址的實用程序。 地址開頭的 11111111 將該地址標(biāo)識為多播地址。
覆蓋:
類 InetAddress 中的 isMulticastAddress
返回:
一個布爾值,指示 InetAddress 是否為 IP 多播地址
isAnyLocalAddress
public boolean isAnyLocalAddress()
檢查 InetAddress 是否在通配符地址中的實用程序。
覆蓋:
類 InetAddress 中的 isAnyLocalAddress
返回:
一個布爾值,指示 Inetaddress 是否為通配符地址。
isLoopbackAddress
public boolean isLoopbackAddress()
檢查 InetAddress 是否為環(huán)回地址的實用程序。
覆蓋:
類 InetAddress 中的 isLoopbackAddress
返回:
一個布爾值,指示 InetAddress 是否為環(huán)回地址; 否則為假。
isLinkLocalAddress
public boolean isLinkLocalAddress()
檢查 InetAddress 是否為鏈接本地地址的實用程序。
覆蓋:
類 InetAddress 中的 isLinkLocalAddress
返回:
一個布爾值,指示 InetAddress 是否是鏈接本地地址; 如果地址不是鏈接本地單播地址,則為 false。
isSiteLocalAddress
public boolean isSiteLocalAddress()
檢查 InetAddress 是否為站點本地地址的實用程序例程。
覆蓋:
類 InetAddress 中的 isSiteLocalAddress
返回:
一個布爾值,指示 InetAddress 是否是站點本地地址; 如果地址不是站點本地單播地址,則為 false。
isMCGlobal
public boolean isMCGlobal()
檢查多播地址是否具有全局范圍的實用程序。
覆蓋:
類 InetAddress 中的 isMCGlobal
返回:
一個布爾值,指示地址是否是全局范圍的多播地址,如果不是全局范圍或不是多播地址,則為 false
isMCNodeLocal
public boolean isMCNodeLocal()
檢查多播地址是否具有節(jié)點范圍的實用程序。
覆蓋:
類 InetAddress 中的 isMCNodeLocal
返回:
一個布爾值,指示地址是否是節(jié)點本地范圍的多播地址,如果它不是節(jié)點本地范圍或不是多播地址,則為 false
isMCLinkLocal
public boolean isMCLinkLocal()
檢查多播地址是否具有鏈接范圍的實用程序。
覆蓋:
類 InetAddress 中的 isMCLinkLocal
返回:
一個布爾值,指示地址是否是鏈路本地范圍的多播地址,如果不是鏈路本地范圍或不是多播地址,則為 false
isMCSiteLocal
public boolean isMCSiteLocal()
檢查多播地址是否具有站點范圍的實用程序。
覆蓋:
類 InetAddress 中的 isMCSiteLocal
返回:
一個布爾值,指示地址是否是站點本地范圍的多播地址,如果它不是站點本地范圍或不是多播地址,則為 false
isMCOrgLocal
public boolean isMCOrgLocal()
檢查多播地址是否具有組織范圍的實用程序。
覆蓋:
類 InetAddress 中的 isMCOrgLocal
返回:
一個布爾值,指示地址是否是組織本地范圍的多播地址,如果它不是組織本地范圍或不是多播地址,則為 false
getAddress
public byte[] getAddress()
返回此 InetAddress 對象的原始 IP 地址。 結(jié)果按網(wǎng)絡(luò)字節(jié)順序排列:地址的最高字節(jié)在 getAddress()[0] 中。
覆蓋:
類 InetAddress 中的 getAddress
返回:
此對象的原始 IP 地址。
getScopeId
public int getScopeId()
如果此實例與接口關(guān)聯(lián),則返回數(shù)字 scopeId。 如果沒有設(shè)置 scoped_id,則返回值為零。
返回:
scopeId,如果未設(shè)置,則為零。
getScopedInterface
public NetworkInterface getScopedInterface()
如果此實例是使用作用域接口創(chuàng)建的,則返回作用域接口。
返回:
作用域接口,如果未設(shè)置,則為 null。
getHostAddress
public String getHostAddress()
以文本形式返回 IP 地址字符串。 如果創(chuàng)建實例時指定了范圍標(biāo)識符,則范圍 id 將附加到 IP 地址前面,并以“%”(百分比)字符開頭。 這可以是數(shù)值或字符串,具體取決于用于創(chuàng)建實例的類型。
覆蓋:
類 InetAddress 中的 getHostAddress
返回:
字符串格式的原始 IP 地址。
hashCode
public int hashCode()
返回此 IP 地址的哈希碼。
覆蓋:
InetAddress 類中的 hashCode
返回:
此 IP 地址的哈希碼值。
equals
public boolean equals(Object obj)
將此對象與指定對象進行比較。 當(dāng)且僅當(dāng)參數(shù)不為 null 并且它表示與此對象相同的 IP 地址時,結(jié)果才為真。
如果 getAddress 返回的字節(jié)數(shù)組的長度對于兩者相同,并且每個數(shù)組組件對于字節(jié)數(shù)組都相同,則 InetAddress 的兩個實例表示相同的 IP 地址。
覆蓋:
等于類 InetAddress
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| obj | 要比較的對象。 |
返回:
如果對象相同,則為 true; 否則為false。
isIPv4CompatibleAddress
public boolean isIPv4CompatibleAddress()
檢查 InetAddress 是否為與 IPv4 兼容的 IPv6 地址的實用程序。
返回:
一個布爾值,指示 InetAddress 是否是與 IPv4 兼容的 IPv6 地址; 如果地址是 IPv4 地址,則為 false。
網(wǎng)頁名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSInet6Address
標(biāo)題來源:http://fisionsoft.com.cn/article/cdhdipp.html


咨詢
建站咨詢
