|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjava.net.InetAddress
public class InetAddress
IP (Internet Protocol) アドレスを表すクラスです。
IP アドレスは、IP で使用される 32 ビットまたは 128 ビットの符号なしの数字で、UDP や TCP などのプロトコルが構築される下位レベルのプロトコルです。IP アドレスのアーキテクチャは、「RFC 790: Assigned Numbers」、「RFC 1918: Address Allocation for Private Internets」、「RFC 2365: Administratively Scoped IP Multicast」、および「RFC 2373: IP Version 6 Addressing Architecture」に定義されています。InetAddress のインスタンスは、IP アドレスと、(場合によっては) それに対応するホスト名で構成されます (ホスト名を使用して構築されたか、ホスト名の逆解決をすでに実行したかどうかによって異なる)。
ユニキャスト 単一インタフェースの識別子。ユニキャストアドレスに送信されたパケットは、そのアドレスで識別されるインタフェースに配信されます。 未指定のアドレス -- 任意ローカルアドレスまたはワイルドカードアドレスとも呼ばれます。このアドレスはどのノードにも割り当ててはなりません。これはアドレスがないことを示します。このアドレスを使った例としてバインドの対象があります。これにより、サーバホストに複数のインタフェースがある場合に、サーバは任意のインタフェースでクライアント接続を受け入れることができます。
「未指定」のアドレスは、IP パケットの転送先アドレスとして使用してはなりません。
「ループバック」アドレス -- ループバックインタフェースに割り当てられるアドレスです。この IP アドレスに送信されたものはすべてループし、ローカルホストで IP 入力になります。このアドレスはよくクライアントのテストに使用されます。
マルチキャスト 一連のインタフェース (通常は別のノードに属す) の識別子。マルチキャストアドレスに送信されたパケットは、そのアドレスで識別されるすべてのインタフェースに配信されます。
「リンクローカル」アドレスは、自動アドレス構成、隣接アドレスの発見などを目的として、あるいはルータが存在しない場合に、単一リンクのアドレス指定に使うために設計されています。
「サイトローカル」アドレスは、グローバル接頭辞を必要としないサイト内のアドレス指定に使うために設計されています。
「グローバル」アドレスは、インターネット全体で一意です。
IPv4 のアドレス形式については、「Inet4Address#format」を参照してください。IPv6 のアドレス形式については、「Inet4Address#format」を参照してください。
「逆名前解決」では、任意の IP アドレスについて、その IP アドレスに関連するホスト名が返されます。
InetAddress クラスは、ホスト名からその IP アドレスへの解決、およびその逆の解決のメソッドを提供します。
デフォルトでは、キャッシュのエントリを削除する安全な時期を決定する一般的な規則がないため、成功したホスト名解決の結果は永遠にキャッシュされます。不成功のホスト名解決の結果は、パフォーマンスの向上のために短時間 (10 秒) だけキャッシュされます。
DNS の不正アクセスによる攻撃が不可能と判定できる特定の環境では、Java セキュリティプロパティをポジティブキャッシュの別の有効期間 (TTL) 値に設定することができます。同様に、システム管理者は必要に応じて別のネガティブキャッシュ TTL 値を設定することができます。
値 -1 は、「永遠にキャッシュ」を示します。
値 0 は「キャッシュしない」を、値 -1 は「永遠にキャッシュ」を示します。
getByAddress(byte[])
,
getByAddress(java.lang.String, byte[])
,
getAllByName(java.lang.String)
,
getByName(java.lang.String)
,
getLocalHost()
,
直列化された形式メソッドの概要 | |
---|---|
boolean |
equals(Object obj)
このオブジェクトと指定されたオブジェクトとを比較します。 |
byte[] |
getAddress()
この InetAddress オブジェクトの IP アドレスをそのまま返します。 |
static InetAddress[] |
getAllByName(String host)
ホスト名を指定すると、システムに設定されているネームサービスに基づいてその IP アドレスの配列を返します。 |
static InetAddress |
getByAddress(byte[] addr)
そのままの IP アドレスを持つ InetAddress オブジェクトを返します。 |
static InetAddress |
getByAddress(String host,
byte[] addr)
指定されたホスト名および IP アドレスに基づいて InetAddress を作成します。 |
static InetAddress |
getByName(String host)
指定されたホスト名を持つホストの IP アドレスを取得します。 |
String |
getCanonicalHostName()
この IP アドレスの完全修飾ドメイン名を取得します。 |
String |
getHostAddress()
テキスト表現の IP アドレス文字列を返します。 |
String |
getHostName()
この IP アドレスに対応するホスト名を取得します。 |
static InetAddress |
getLocalHost()
ローカルホストを返します。 |
int |
hashCode()
この IP アドレスのハッシュコードを返します。 |
boolean |
isAnyLocalAddress()
InetAddress がワイルドカードアドレスかどうかを調べるユーティリティルーチンです。 |
boolean |
isLinkLocalAddress()
InetAddress がリンクローカルアドレスかどうかを調べるユーティリティルーチンです。 |
boolean |
isLoopbackAddress()
InetAddress がループバックアドレスかどうかを調べるユーティリティルーチンです。 |
boolean |
isMCGlobal()
マルチキャストアドレスにグローバルスコープがあるかどうかを調べるユーティリティルーチンです |
boolean |
isMCLinkLocal()
マルチキャストアドレスにリンクスコープがあるかどうかを調べるユーティリティルーチンです |
boolean |
isMCNodeLocal()
マルチキャストアドレスにノードスコープがあるかどうかを調べるユーティリティルーチンです |
boolean |
isMCOrgLocal()
マルチキャストアドレスに組織スコープがあるかどうかを調べるユーティリティルーチンです |
boolean |
isMCSiteLocal()
マルチキャストアドレスにサイトスコープがあるかどうかを調べるユーティリティルーチンです |
boolean |
isMulticastAddress()
InetAddress が IP マルチキャストアドレスかどうかを調べるユーティリティルーチンです。 |
boolean |
isReachable(int timeout)
アドレスが到達可能かどうかをテストします。 |
boolean |
isReachable(NetworkInterface netif,
int ttl,
int timeout)
アドレスが到達可能かどうかをテストします。 |
boolean |
isSiteLocalAddress()
InetAddress がサイトローカルアドレスかどうかを調べるユーティリティルーチンです。 |
String |
toString()
この IP アドレスを String に変換します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
メソッドの詳細 |
---|
public boolean isMulticastAddress()
boolean
public boolean isAnyLocalAddress()
boolean
public boolean isLoopbackAddress()
boolean
。ループバックアドレスでない場合は falsepublic boolean isLinkLocalAddress()
boolean
。アドレスがリンクローカルユニキャストアドレスでない場合は falsepublic boolean isSiteLocalAddress()
boolean
。アドレスがサイトローカルユニキャストアドレスでない場合は falsepublic boolean isMCGlobal()
boolean
。アドレスがグローバルスコープでない場合、あるいはマルチキャストアドレスでない場合は falsepublic boolean isMCNodeLocal()
boolean
。アドレスがノードローカルスコープでない場合、あるいはマルチキャストアドレスでない場合は falsepublic boolean isMCLinkLocal()
boolean
。アドレスがリンクローカルスコープでない場合、あるいはマルチキャストアドレスでない場合は falsepublic boolean isMCSiteLocal()
boolean
。アドレスがサイトローカルスコープでない場合、あるいはマルチキャストアドレスでない場合は falsepublic boolean isMCOrgLocal()
boolean
。アドレスが組織ローカルスコープでない場合、あるいはマルチキャストアドレスでない場合は falsepublic boolean isReachable(int timeout) throws IOException
タイムアウト値 (ミリ秒) は、その試行にかける最大時間を示します。操作が応答を得る前にタイムアウトした場合、ホストは到達不可能と見なされます。負の値の場合、IllegalArgumentException がスローされます。
timeout
- 呼び出しが中止されるまでの時間 (ミリ秒)
boolean
IOException
- ネットワークエラーが発生した場合
IllegalArgumentException
- timeout
が負の値の場合public boolean isReachable(NetworkInterface netif, int ttl, int timeout) throws IOException
呼び出し側は、network interface
および ttl
パラメータを使用して、テストを実行するネットワークインタフェースとパケットが転送されるホップの最大数を指定します。ttl
が負の値である場合、IllegalArgumentException がスローされます。
タイムアウト値 (ミリ秒) は、その試行にかける最大時間を示します。操作が応答を得る前にタイムアウトした場合、ホストは到達不可能と見なされます。負の値の場合、IllegalArgumentException がスローされます。
netif
- テストを実行する NetworkInterface。任意のインタフェースの場合は nullttl
- 試行するホップの最大数。デフォルトでは 0timeout
- 呼び出しが中止されるまでの時間 (ミリ秒)
boolean
IllegalArgumentException
- timeout
または ttl
が負の場合
IOException
- ネットワークエラーが発生した場合public String getHostName()
この InetAddress がホスト名を使用して作成された場合は、このホスト名が保存されて返されます。そうでない場合は、逆ネーム参照が実行されて、システムに設定されたネーム参照サービスに基づいて結果が返されます。ネームサービスの参照が必要な場合は、getCanonicalHostName
を呼び出します。
セキュリティマネージャが存在する場合、まずセキュリティマネージャの checkConnect
メソッドが、引数としてホスト名および -1
を指定して呼び出され、この操作が許可されているかどうかを確認します。操作が許可されていない場合は、IP アドレスのテキスト表現を返します。
getCanonicalHostName()
,
SecurityManager.checkConnect(java.lang.String, int)
public String getCanonicalHostName()
セキュリティマネージャが存在する場合、このメソッドはまずセキュリティマネージャの checkConnect
メソッドを引数としてホスト名と -1
を指定して呼び出して、呼び出し側のコードがこの IP アドレスのホスト名を認識する、つまりホストに接続することが許可されているかどうかを確認します。操作が許可されていない場合は、IP アドレスのテキスト表現を返します。
SecurityManager.checkConnect(java.lang.String, int)
public byte[] getAddress()
InetAddress
オブジェクトの IP アドレスをそのまま返します。結果は、ネットワークバイト順序に従って返されます。アドレスの最上位バイトが getAddress()[0]
になります。
public String getHostAddress()
public int hashCode()
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
null
ではなく、このオブジェクトと同じ IP アドレスを表すオブジェクトの場合にだけ、結果が true
になります。
getAddress
によって返されるバイト配列の長さが同じであり、バイト配列の各要素が同じである場合、2 つの InetAddress
のインスタンスは同じ IP アドレスを表しています。
Object
内の equals
obj
- 比較対象のオブジェクト
true
、そうでない場合は false
getAddress()
public String toString()
String
に変換します。返される文字列の書式は、「ホスト名/リテラル IP アドレス」です。
ホスト名が解決されない場合、逆ネームサービス参照は実行されません。ホスト名部分は空の文字列で表されます。
Object
内の toString
public static InetAddress getByAddress(String host, byte[] addr) throws UnknownHostException
ホスト名は、「java.sun.com
」などのマシン名か、またはその IP アドレスのテキスト表現です。
ホスト名についても有効性チェックは実行されません。
addr に IPv4 アドレスを指定すると、Inet4Address のインスタンスが返されます。そうでない場合は、Inet6Address のインスタンスが返されます。
IPv4 アドレスのバイト配列は 4 バイト長、IPv6 のバイト配列は 16 バイト長でなければなりません。
host
- 指定されたホストaddr
- ネットワークバイト順序の IP アドレス
UnknownHostException
- IP アドレスの長さが不正の場合public static InetAddress getByName(String host) throws UnknownHostException
ホスト名は「java.sun.com
」のようなマシン名か、IP アドレスのテキスト表現です。リテラル IP アドレスが指定された場合、アドレス形式の有効性だけをチェックします。
リテラル IPv6 アドレスで指定される host
については、RFC 2732 で定義されている形式か、RFC 2373 で定義されているリテラル IPv6 アドレス形式が可能です。IPv6 スコープアドレスもサポートされています。IPv6 スコープアドレスの詳細は、ここを参照してください。
ホストが null の場合、ループバックインタフェースのアドレスを表す InetAddress が返されます。「RFC 3330」のセクション 2 および「RFC 2373」のセクション 2.5.3 を参照してください。
host
- 指定されたホスト、または null
UnknownHostException
- host
に指定された IP アドレスが見つからなかった、またはグローバル IPv6 アドレスの scope_id が指定された場合
SecurityException
- セキュリティマネージャが存在し、セキュリティマネージャの checkConnect メソッドがこの操作を許可しない場合public static InetAddress[] getAllByName(String host) throws UnknownHostException
ホスト名は「java.sun.com
」のようなマシン名か、IP アドレスのテキスト表現です。リテラル IP アドレスが指定された場合、アドレス形式の有効性だけをチェックします。
「リテラル IPv6 アドレス」で指定される host
については、RFC 2732 で定義されている形式か、RFC 2373 で定義されているリテラル IPv6 アドレス形式が可能です。スコープゾーン識別子または scope_id を付加することで、リテラル IPv6 アドレスもサポートされます。scope_id の構文と使用方法は、ここを参照してください。
ホストが null の場合、ループバックインタフェースのアドレスを表す InetAddress が返されます。「RFC 3330」のセクション 2 および「RFC 2373」のセクション 2.5.3 を参照してください。
セキュリティマネージャが存在する場合、host
が null ではなく、host.length()
の値が 0 ではないときは、セキュリティマネージャの checkConnect
メソッドが、引数としてホスト名と -1
を指定して呼び出され、この操作が許可されていることを確認します。
host
- ホスト名、または null
UnknownHostException
- host
に指定された IP アドレスが見つからなかった、またはグローバル IPv6 アドレスの scope_id が指定された場合
SecurityException
- セキュリティマネージャが存在し、セキュリティマネージャの checkConnect
メソッドがこの操作を許可しない場合SecurityManager.checkConnect(java.lang.String, int)
public static InetAddress getByAddress(byte[] addr) throws UnknownHostException
InetAddress
オブジェクトを返します。引数はネットワークバイト順序で、アドレスの最上位バイトが getAddress()[0]
になります。
このメソッドはブロックしません。つまり、逆ネームサービス参照は実行されません。
IPv4 アドレスのバイト配列は 4 バイト長、IPv6 のバイト配列は 16 バイト長でなければなりません。
addr
- ネットワークバイト順序の IP アドレス
UnknownHostException
- IP アドレスの長さが不正の場合public static InetAddress getLocalHost() throws UnknownHostException
セキュリティマネージャが存在する場合、セキュリティマネージャの checkConnect
メソッドが、引数としてローカルホスト名および -1
を指定して呼び出され、この操作が許可されているかどうかを確認します。操作が許可されていない場合は、参照アドレスを表す InetAddress が返されます。
UnknownHostException
- host
引数に指定されたホストの IP アドレスが見つからなかった場合SecurityManager.checkConnect(java.lang.String, int)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。