|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.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」は、アドレスを 8 つの 16 ビット部分に分けて 16 進数で表した値です。これは完全な形式です。次に例を示します。
1080:0:0:0:8:800:200C:417A
特定スタイルの IPv6 アドレスを割り当てるためのいくつかの方式が原因となり、アドレス内にゼロビットの長い列が含まれることがよくあります。ゼロビットを含むアドレスを記述しやすくするため、ゼロを圧縮する特殊な構文が利用できます。「::」の使用は、ゼロだけから成る 16 ビットのグループが複数存在することを示します。「::」は、1 つのアドレス内で 1 回しか使えません。また、「::」を使えば、アドレス内の先頭のゼロまたは末尾のゼロ、あるいはその両方を圧縮することもできます。次に例を示します。
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 表現アドレスの 10 進数値です。次に例を示します。
::FFFF:129.144.52.38 ::129.144.52.38
::FFFF:d.d.d ::FFFF:d.d ::d.d.d ::d.d
::FFFF:d
::255.255.0.d
テキスト表現を出力値として返すメソッドでは、完全な形式が使用されます。Inet6Address が完全な形式を返すのは、ほかのテキストデータと組み合わせて使用する場合にも、あいまいにならないからです。
IPv4 マップのアドレス ::ffff:w.x.y.z という形式の IPv6 アドレスは、IPv4 アドレスを表すのに使用されます。このアドレスを利用すると、ネイティブプログラムでは、IPv4 ノードと IPv6 ノードの両方と通信する際に、同じアドレスデータ構造と、さらには同じソケットを使用できます。
前述した IPv6 アドレスのテキスト表現を拡張して、IPv6 スコープアドレスを指定できます。基本的なアドレス指定アーキテクチャーに対するこの拡張については、[draft-ietf-ipngwg-scoping-arch-04.txt] を参照してください。
リンクローカルアドレスとサイトローカルアドレスはグローバルではありません。このため、複数のホストが同一の送信先アドレスを持ち、同一の送信元システム上の異なるインタフェース経由でそれらのホストに到達できる可能性があります。この場合、その送信元システムは、同一スコープの複数のゾーンに接続されています。どれが目的の送信先ゾーンであるかを明確にするために、ゾーン識別子 (scope_id) を IPv6 アドレスの末尾に追加することができます。
scope_id の一般的な指定形式は、次のとおりです。
IPv6-address%scope_id
IPv6-address は、前述のリテラル IPv6 アドレスです。scope_id はローカルシステム上のあるインタフェースを参照します。これを指定するには次の 2 つの方法があります。
NetworkInterface.getName()
から返された文字列と正確に一致しなければいけません。Inet6Address がこの方法で作成される場合は、そのオブジェクトを生成するときに関連する NetworkInterface に問い合わせることで、数値のスコープ ID が決定されます。また、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 を作成します。 |
static Inet6Address |
getByAddress(String host,
byte[] addr,
NetworkInterface nif)
InetAddress.getByAddress(String,byte[]) とまったく同様にして Inet6Address を作成します。 |
String |
getHostAddress()
テキスト表現の IP アドレス文字列を返します。 |
NetworkInterface |
getScopedInterface()
このインスタンスがスコープインタフェースを使って作成された場合、そのスコープインタフェースを返します。 |
int |
getScopeId()
このインスタンスがインタフェースに関連付けられている場合は、数値スコープ 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 を作成します。ただし、指定されたインタフェースの addr
に指定されたアドレスタイプに対応する値に、IPv6 スコープ ID が設定される点は異なります。指定されたアドレスタイプ (リンクローカルやサイトローカルなど) に割り当てられた数値スコープ ID が指定されたインタフェースに存在しない場合、この呼び出しは UnknownHostException で失敗します。IPv6 スコープアドレスについては、ここを参照してください。
host
- 指定されたホストaddr
- ネットワークバイト順序の IP アドレスnif
- このアドレスを関連付ける必要のあるインタフェース
UnknownHostException
- IP アドレスの長さが正しくない場合、または指定されたアドレスタイプに割り当てられた数値スコープ ID がインタフェースに存在しない場合public static Inet6Address getByAddress(String host, byte[] addr, int scope_id) throws UnknownHostException
InetAddress.getByAddress(String,byte[])
とまったく同様にして Inet6Address を作成します。ただし、IPv6 スコープ ID が指定された数値に設定される点は異なります。このスコープ ID に対応するインタフェースがシステム上に存在するかどうかのチェックは行われません。IPv6 スコープアドレスについては、ここを参照してください。
host
- 指定されたホストaddr
- ネットワークバイト順序の IP アドレスscope_id
- このアドレスに対応する数値スコープ ID
UnknownHostException
- IP アドレスの長さが不正の場合public boolean isMulticastAddress()
InetAddress
内の isMulticastAddress
boolean
public boolean isAnyLocalAddress()
InetAddress
内の isAnyLocalAddress
boolean
public boolean isLoopbackAddress()
InetAddress
内の isLoopbackAddress
boolean
。ループバックアドレスでない場合は falsepublic boolean isLinkLocalAddress()
InetAddress
内の isLinkLocalAddress
boolean
。アドレスがリンクローカルユニキャストアドレスでない場合は falsepublic boolean isSiteLocalAddress()
InetAddress
内の isSiteLocalAddress
boolean
。アドレスがサイトローカルユニキャストアドレスでない場合は falsepublic boolean isMCGlobal()
InetAddress
内の isMCGlobal
boolean
。それがグローバルスコープのアドレスでないかマルチキャストアドレスでない場合は falsepublic boolean isMCNodeLocal()
InetAddress
内の isMCNodeLocal
boolean
。それがノードローカルスコープのアドレスでないかマルチキャストアドレスでない場合は falsepublic boolean isMCLinkLocal()
InetAddress
内の isMCLinkLocal
boolean
。それがリンクローカルスコープのアドレスでないかマルチキャストアドレスでない場合は falsepublic boolean isMCSiteLocal()
InetAddress
内の isMCSiteLocal
boolean
。それがサイトローカルスコープのアドレスでないかマルチキャストアドレスでない場合は falsepublic boolean isMCOrgLocal()
InetAddress
内の isMCOrgLocal
boolean
。それが組織ローカルスコープのアドレスでないかマルチキャストアドレスでない場合は falsepublic byte[] getAddress()
InetAddress
オブジェクトの生の IP アドレスを返します。その結果はネットワークバイト順序になります。アドレスの最上位順序バイトは getAddress()[0]
内に存在します。
InetAddress
内の getAddress
public int getScopeId()
public NetworkInterface getScopedInterface()
public String getHostAddress()
InetAddress
内の getHostAddress
public int hashCode()
InetAddress
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
null
ではなく、その引数がこのオブジェクトと同じ IP アドレスを表す場合にだけ、結果が true
になります。
getAddress
によって返されるバイト配列の長さが同じであり、バイト配列の各要素が同じである場合、2 つの InetAddress
のインスタンスは同じ IP アドレスを表しています。
InetAddress
内の equals
obj
- 比較対象のオブジェクト
true
、そうでない場合は false
InetAddress.getAddress()
public boolean isIPv4CompatibleAddress()
boolean
。アドレスが IPv4 アドレスである場合は false
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。