|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.net.InetAddress
java.net.Inet6Address
public final class Inet6Address
このクラスは Internet Protocol バージョン 6 (IPv6) アドレスを表します。定義については、「RFC 2373: IP Version 6 Addressing Architecture」を参照してください。
推奨される形式は x:x:x:x:x:x:x:x です。ここで、x は 8 つの 16 ビットアドレスの 16 進数値です。これが完全な形式です。次に例を示します。
1080:0:0:0:8:800:200C:417A
個々のフィールドのゼロ埋め込みは必要ありません。ただし、次に説明する場合を除いて、各フィールドには少なくとも 1 つの数値が必要です。
特定のスタイルの IPv6 アドレスを割り当てる一部のメソッドのために、0 ビットの長い文字列を含むアドレスが一般的です。0 ビットを含むアドレスの書き込みを簡単にするために、特別な構文を使用して 0 を圧縮できます。「::」の使用は、複数のグループの 16 ビットの 0 を示します。「::」はアドレス内に 1 度だけ使用できます。また、「::」を使用して、アドレス内の先頭または末尾の 0 を圧縮することもできます。次に例を示します。
1080::8:800:200C:417A
IPv4 および IPv6 ノードが混在する環境に対応する場合にさらに便利な代替形式が x:x:x:x:x:x:d.d.d.d です。ここで、x は上位 6 つの 16 ビットアドレスの 16 進数値で、d は下位 4 つの 8 ビット標準 IPv4 表現アドレスの十進数値です。次に例を示します。
::FFFF:129.144.52.38 ::129.144.52.38
「::FFFF:d.d.d.d」と「::d.d.d.d」は、それぞれ IPv4 マップの IPv6 アドレスと IPv4 互換 IPv6 アドレスの一般的な形式です。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」に対応します。
テキスト表現を出力値として返すメソッドの場合は、完全な形式が使用されます。Inet6Addres は、ほかのテキストデータと組み合わせて使用すると明確なので、完全な形式を返します。
IPv4 マップのアドレス ::ffff:w.x.y.z という形式の IPv6 アドレスは、IPv4 アドレスを表すのに使用されます。このアドレスにより、IPv4 と IPv6 の両方のノードと通信するときに、ネイティブプログラムは同じアドレスデータ構造を使用することができ、同じソケットを使用することもできます。 InetAddress と Inet6Address では、このアドレスは内部表現に使用され、機能上の役割はありません。Java は IPv4 マップのアドレスを返しません。これらのクラスは、IPv4 マップのアドレスをバイト配列とテキスト表現の両方で入力として使用できます。ただし、IPv4 マップのアドレスは IPv4 アドレスに変換されます。
IPv6 アドレスのテキスト表現を上記のように拡張して、IPv6 スコープアドレスを指定できます。このような基本アドレス指定アーキテクチャの拡張については、「draft-ietf-ipngwg-scoping-arch-04.txt」を参照してください。
リンクローカルのアドレスやサイトローカルのアドレスは非グローバルです。このため、複数のホストが同じ宛先アドレスを共有し、その結果、これらのホストに同じ送信元システム上の複数のインタフェースを介して到達できる可能性があります。この場合、送信元システムは同じスコープの複数のゾーンに接続されていることになります。どれが目的のゾーンであるか明確にするため、IPv6 アドレスにゾーン識別子 (scope_id) を追加できます。
scope_id は、通常、次のように指定します。
IPv6-address%scope_id
IPv6 アドレスは、上記の説明のように、リテラル IPv6 アドレスです。scope_id は、ローカルシステム上のインタフェースを参照します。次の 2 通りの方法で指定できます。
NetworkInterface.getName() によって返される文字列。この方法で Inet6Address を作成する場合、数値の scope-id は、オブジェクトの作成時に、関連する NetworkInterface を照会することによって判定される数値の scope_id は、NetworkInterface クラスから返される Inet6Address インスタンスから取得することもできます。これを使って、システム上で設定されている現在のスコープ ID を確認できます。
| メソッドの概要 | |
|---|---|
boolean |
equals(Object obj)
このオブジェクトと指定されたオブジェクトとを比較します。 |
byte[] |
getAddress()
この InetAddress オブジェクトの IP アドレスをそのまま返します。 |
static Inet6Address |
getByAddress(String host,
byte[] addr,
int scope_id)
InetAddress.getByAddress(String,byte[]) と同様にして Inet6Address を作成します。 |
static Inet6Address |
getByAddress(String host,
byte[] addr,
NetworkInterface nif)
InetAddress.getByAddress(String,byte[]) と同様にして Inet6Address を作成します。 |
String |
getHostAddress()
IP アドレスのテキスト表現を返します。 |
NetworkInterface |
getScopedInterface()
このインスタンスがスコープインタフェースで作成された場合、このスコープインタフェースを返します。 |
int |
getScopeId()
このインスタンスにインタフェースが関連付けられている場合、数値の scopeId を返します。 |
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 が割り当てられていない場合、呼び出しは失敗し、UnkinownHostException が発生します。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 内の isMulticastAddressbooleanpublic boolean isAnyLocalAddress()
InetAddress 内の isAnyLocalAddressbooleanpublic boolean isLoopbackAddress()
InetAddress 内の isLoopbackAddressboolean。ループバックアドレスでない場合は falsepublic boolean isLinkLocalAddress()
InetAddress 内の isLinkLocalAddressboolean。アドレスがリンクローカルユニキャストアドレスでない場合は falsepublic boolean isSiteLocalAddress()
InetAddress 内の isSiteLocalAddressboolean。アドレスがサイトローカルユニキャストアドレスでない場合は falsepublic 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 によって返されるバイト配列の長さが同じであり、バイト配列の各要素が同じである場合、2 つの InetAddress のインスタンスは同じ IP アドレスを表しています。
InetAddress 内の equalsobj - 比較対象のオブジェクト
true、そうでない場合は falseInetAddress.getAddress()public boolean isIPv4CompatibleAddress()
boolean。アドレスが IPv4 アドレスの場合は false
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。