|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.net.InetAddress
java.net.Inet6Address
public final class Inet6Address
此類別表示網際網路協議第 6 版 (IPv6) 位址。此類別由 RFC 2373:IP Version 6 Addressing Architecture 定義。
首選形式為 x:x:x:x:x:x:x:x,其中這些 'x' 是八個 16 位位址段的十六進制值。這是完整形式。例如,
1080:0:0:0:8:800:200C:417A
注意,在個別欄位中不必寫出前導零。但是,在每個欄位中至少必須存在一個數字,以下描述的情況除外。
由於某些分派確定的 IPv6 位址樣式的方法,位址經常包含零位的長字元串。為了更方便地寫入包含零位的位址,可以使用特殊語法壓縮這些零位。使用 "::"指示多個零的 16 位組。"::"只能在位址中出現一次。"::" 還可用於壓縮位址中的前導和/或尾部零。例如,
1080::8:800:200C:417A
處理 IPv4 和 IPv6 節點的混合環境時,有一種有時更為方便的替換形式是 x:x:x:x:x:x:d.d.d.d ,其中 'x' 為六個高位 16 位位址段的十六進制值,'d' 為四個低位 8 位標準 IPv4 表示形式位址段的十進制值,例如,
::FFFF:129.144.52.38 ::129.144.52.38
其中,"::FFFF:d.d.d.d" 和 "::d.d.d.d" 分別為映射 IPv4 的 IPv6 位址 (IPv4-mapped IPv6 address) 和與 IPv4 相容的 IPv6 位址 (IPv4-compatible IPv6 address) 的一般形式。注意,IPv4 部分必須為 "d.d.d.d" 形式。以下形式是無效的:
::FFFF:d.d.d ::FFFF:d.d ::d.d.d ::d.d
以下形式:
::FFFF:d
有效,不過它是與 IPv4 相容的 IPv6 位址的非傳統表示形式:
::255.255.0.d
在 "::d" 對應於一般 IPv6 位址 "0:0:0:0:0:0:0:d" 時。
對於以輸出值形式返回文本表示形式作的方法,使用完整形式。Inet6Address 將返回完整形式,因為在與其他文本資料組合時它是明確的。
映射 IPv4 的位址 其形式為 ::ffff:w.x.y.z,此 IPv6 位址用於表示 IPv4 位址。與 IPv4 和 IPv6 節點通信時,它允許本機程序使用相同的位址資料結構和相同的Socket。 在 InetAddress 和 Inet6Address 中,它用於內部表示形式;沒有任何功能職責。Java 永遠不返回映射 IPv4 的位址。這些類別可以使用映射 IPv4 的位址,作為 byte 陣列和文本表示形式的輸入。但是,它將被轉換為 IPv4 位址。
可以擴展上述 IPv6 位址的文本表示形式來指定 IPv6 範圍的位址。在 [draft-ietf-ipngwg-scoping-arch-04.txt] 中描述了這種對基本位址體系結構的擴展。
因為連接本地和站點本地位址都是非全球的,所以不同的主機可能具有相同的目標位址並且可能通過相同始發系統上的不同介面到達。在此情況下,視為將始發系統連接到同一範圍的多個時區。為了確定哪一個才是真正意義上的目標時區,可以將時區標識符(或 scope_id)添加到 IPv6 位址上。
指定 scope_id 的一般格式如下所示:
IPv6-address%scope_id
IPv6 位址就是上述文字值 IPv6 位址。scope_id 指的是本地系統上的介面,它可以使用兩種方式指定。
NetworkInterface.getName() 所返回的確切字元串。如果以此方式創建 Inet6Address,則數字 scope-id 在創建該物件時通過查詢相關 NetworkInterface 來確定。另外注意,可以從 NetworkInterface 類別返回的 Inet6Address 實例獲取數字 scope_id。這一點可用於找出在系統上配置的當前範圍 id。
| 方法摘要 | |
|---|---|
boolean |
equals(Object obj)
將此物件與指定物件比較。 |
byte[] |
getAddress()
返回此 InetAddress 物件的原始 IP 位址。 |
static Inet6Address |
getByAddress(String host,
byte[] addr,
int scope_id)
完全按照 InetAddress.getByAddress(String,byte[]) 的方式創建 Inet6Address,唯一的不同是將 IPv6 scope_id 設置為給定的數字值。 |
static Inet6Address |
getByAddress(String host,
byte[] addr,
NetworkInterface nif)
完全按照 InetAddress.getByAddress(String,byte[]) 的方式創建 Inet6Address,唯一的不同是將 IPv6 scope_id 設置為與在 addr 中指定位址型別的給定介面相對應的值。 |
String |
getHostAddress()
返回 IP 位址字元串(以文本表現形式)。 |
NetworkInterface |
getScopedInterface()
如果此實例是使用範圍介面創建的,則返回範圍介面。 |
int |
getScopeId()
如果此實例與介面關聯,則返回數字 scoped_id。 |
int |
hashCode()
返回此 IP 位址的雜湊碼。 |
boolean |
isAnyLocalAddress()
檢查 InetAddress 是否是通配符位址的實用例行程序。 |
boolean |
isIPv4CompatibleAddress()
檢查 InetAddress 是否是與 IPv4 相容的 IPv6 位址的實用例行程序。 |
boolean |
isLinkLocalAddress()
檢查 InetAddress 是否是連接本地位址的實用例行程序。 |
boolean |
isLoopbackAddress()
檢查 InetAddress 是否是回送位址中的實用例行程序。 |
boolean |
isMCGlobal()
檢查多點傳送位址是否具有全球範圍的實用例行程序。 |
boolean |
isMCLinkLocal()
檢查多點傳送位址是否具有連接範圍的實用例行程序。 |
boolean |
isMCNodeLocal()
檢查多點傳送位址是否具有節點範圍的實用例行程序。 |
boolean |
isMCOrgLocal()
檢查多點傳送位址是否具有組織範圍的實用例行程序。 |
boolean |
isMCSiteLocal()
檢查多點傳送位址是否具有站點範圍的實用例行程序。 |
boolean |
isMulticastAddress()
檢查 InetAddress 是否 IP 多點傳送位址的實用例行程序。 |
boolean |
isSiteLocalAddress()
檢查 InetAddress 是否是站點本地位址的實用例行程序。 |
| 從類別 java.net.InetAddress 繼承的方法 |
|---|
getAllByName, getByAddress, getByAddress, getByName, getCanonicalHostName, getHostName, getLocalHost, isReachable, isReachable, toString |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| 方法詳細資訊 |
|---|
public static Inet6Address getByAddress(String host,
byte[] addr,
NetworkInterface nif)
throws UnknownHostException
InetAddress.getByAddress(String,byte[]) 的方式創建 Inet6Address,唯一的不同是將 IPv6 scope_id 設置為與在 addr 中指定位址型別的給定介面相對應的值。如果給定介面不具有為給定位址型別(例如,連接本地或站點本地)分派的數字 scope_id,則調用將失敗並拋出 UnknownHostException。有關 IPv6 範圍位址的描述,請參見這裡。
host - 指定主機addr - 網路位元組順序的原始 IP 位址nif - 必須與此位址關聯的介面。
UnknownHostException - 如果 IP 位址的長度非法或者介面不具有為給定位址型別分派的數字 scope_id。
public static Inet6Address getByAddress(String host,
byte[] addr,
int scope_id)
throws UnknownHostException
InetAddress.getByAddress(String,byte[]) 的方式創建 Inet6Address,唯一的不同是將 IPv6 scope_id 設置為給定的數字值。不會檢查 scope_id 以確定其是否與系統上的任何介面相對應。有關 IPv6 範圍位址的描述,請參見這裡。
host - 指定主機addr - 網路位元組順序的原始 IP 位址scope_id - 位址的數字 scope_id。
UnknownHostException - 如果 IP 位址的長度非法。public boolean isMulticastAddress()
InetAddress 中的 isMulticastAddressboolean 值public boolean isAnyLocalAddress()
InetAddress 中的 isAnyLocalAddressboolean 值public boolean isLoopbackAddress()
InetAddress 中的 isLoopbackAddressboolean 值;否則返回 false。public boolean isLinkLocalAddress()
InetAddress 中的 isLinkLocalAddressboolean 值;如果位址不是連接本地單播位址,則返回 false。public boolean isSiteLocalAddress()
InetAddress 中的 isSiteLocalAddressboolean 值;如果位址不是站點本地單播位址,則返回 false。public boolean isMCGlobal()
InetAddress 中的 isMCGlobalboolean 值;如果它不是全球範圍或多點傳送位址,則返回 falsepublic boolean isMCNodeLocal()
InetAddress 中的 isMCNodeLocalboolean 值;如果它不是節點本地範圍或多點傳送位址,則返回 falsepublic boolean isMCLinkLocal()
InetAddress 中的 isMCLinkLocalboolean 值;如果它不是連接本地範圍或多點傳送位址,則返回 falsepublic boolean isMCSiteLocal()
InetAddress 中的 isMCSiteLocalboolean 值;如果它不是站點本地範圍或多點傳送位址,則返回 falsepublic boolean isMCOrgLocal()
InetAddress 中的 isMCOrgLocalboolean 值;如果它不是組織本地範圍或多點傳送位址,則返回 falsepublic byte[] getAddress()
InetAddress 物件的原始 IP 位址。結果按網路位元組順序:位址的高位位元組位於 getAddress()[0] 中。
InetAddress 中的 getAddresspublic int getScopeId()
public NetworkInterface getScopedInterface()
public String getHostAddress()
InetAddress 中的 getHostAddresspublic int hashCode()
InetAddress 中的 hashCodeObject.equals(java.lang.Object),
Hashtablepublic boolean equals(Object obj)
null,並且它表示與此物件相同的 IP 位址時,結果才為 true。
如果 getAddress 對兩個 InetAddress 返回的 byte 陣列長度相同並且 byte 陣列的每個陣列元素也都相同,則這兩個 InetAddress 的實例表示相同的 IP 位址。
InetAddress 中的 equalsobj - 要與之比較的物件。
true;否則,返回 false。InetAddress.getAddress()public boolean isIPv4CompatibleAddress()
boolean 值;如果位址為 IPv4 位址,則返回 false。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。