public class InetAddress extends Object implements Serializable
IPアドレスは、IPによって使用される32ビットまたは128ビットの符号なしの数値です。IPは、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を参照してください。IPv6のアドレス形式については、Inet6Addressを参照してください。
IPv4とIPv6のアドレスがどのように使用されるかに影響を与えるいくつかのシステム・プロパティが存在します。
逆名前解決では、任意のIPアドレスについて、そのIPアドレスに関連するホスト名が返されます。
InetAddressクラスは、ホスト名からそのIPアドレスへの解決、およびその逆の解決のメソッドを提供します。
デフォルトでは、セキュリティ・マネージャがインストールされている場合は、DNSなりすまし攻撃から身を守るため、成功したホスト名解決の結果が永続的にキャッシュされます。セキュリティ・マネージャがインストールされていない場合のデフォルト動作では、ある限られた期間(実装に依存する)だけエントリがキャッシュされます。失敗したホスト名解決の結果は、パフォーマンスの向上のために短時間(10秒)だけキャッシュされます。
デフォルト動作が要求に合わない場合は、ポジティブ・キャッシュ用のJavaセキュリティ・プロパティを異なる有効期間(TTL)値に設定することができます。同様に、システム管理者は、異なるネガティブ・キャッシュTTL値を必要に応じて設定することができます。
2つのJavaセキュリティ・プロパティにより、ポジティブおよびネガティブのホスト名解決のキャッシュに使用するTTL値を制御します。
- networkaddress.cache.ttl
- ネーム・サービスによる成功した名前検索に対するキャッシング・ポリシーを示します。指定する値は、成功した検索結果をキャッシュする秒数を示す整数です。デフォルト設定は、実装に固有の期間キャッシュすることです。
-1の値は、「ずっとキャッシュする」という意味です。
- networkaddress.cache.negative.ttl (デフォルト: 10)
- ネーム・サービスによる失敗した名前検索に対するキャッシング・ポリシーを示します。指定する値は、失敗した検索結果をキャッシュする秒数を示す整数です。
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()
ローカル・ホストのアドレスを返します。
|
static InetAddress |
getLoopbackAddress()
ループバック・アドレスを返します。
|
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 に変換します。 |
public boolean isMulticastAddress()
boolean
public boolean isAnyLocalAddress()
boolean
。public boolean isLoopbackAddress()
boolean
。ループバック・アドレスでない場合はfalse。public boolean isLinkLocalAddress()
boolean
。アドレスがリンク・ローカル・ユニキャスト・アドレスでない場合はfalse。public boolean isSiteLocalAddress()
boolean
。アドレスがサイト・ローカル・ユニキャスト・アドレスでない場合はfalse。public 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
ネットワーク・インタフェース
パラメータと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()
セキュリティ・マネージャが存在する場合、このメソッドはまず、ホスト名と-1
を引数に指定してそのcheckConnect
メソッドを呼び出し、呼出し元のコードがこのIPアドレスのホスト名を知ること(つまり、そのホストに接続すること)を許可されているかどうかを確認します。操作が許可されていない場合、IPアドレスのテキスト表現を返します。
SecurityManager.checkConnect(java.lang.String, int)
public byte[] getAddress()
InetAddress
オブジェクトの生のIPアドレスを返します。その結果はネットワーク・バイト順序になります。アドレスの最上位順序バイトはgetAddress()[0]
.内に存在します。public String getHostAddress()
public int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
null
ではなく、その引数がこのオブジェクトと同じIPアドレスを表す場合にだけ、結果がtrue
になります。
getAddress
によって返されるバイト配列の長さが同じであり、バイト配列の各コンポーネントが同じである場合、2つのInetAddress
のインスタンスは同じIPアドレスを表しています。
equals
、クラス: Object
obj
- 比較対象のオブジェクト。true
、そうでない場合はfalse
。getAddress()
public String toString()
String
に変換します。返される文字列の形式は、「ホスト名/リテラルIPアドレス」になります。ホスト名が未解決の場合、逆ネーム・サービス検索は実行されません。ホスト名の部分は空の文字列で表現されます。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スコープ・アドレスについては、ここを参照してください。
hostがnull
の場合、ループバック・インタフェースのアドレスを表すInetAddress
が返されます。RFC 3330セクション 2およびRFC 2373セクション 2.5.3を参照してください。
host
- 指定されたホストまたはnull
。UnknownHostException
- host
のIPアドレスが見つからなかった場合、またはグローバルIPv6アドレスでスコープIDが指定された場合。SecurityException
- セキュリティ・マネージャが存在し、そのcheckConnectメソッドでこの操作が許可されていない場合。public static InetAddress[] getAllByName(String host) throws UnknownHostException
ホスト名は、「java.sun.com
」などのマシン名か、またはそのIPアドレスのテキスト表現です。リテラルIPアドレスが指定された場合、アドレス形式の有効性のみがチェックされます。
リテラルIPv6アドレスで指定されるhost
については、RFC 2732で定義されている形式か、RFC 2373で定義されているリテラルIPv6アドレス形式が可能です。リテラルIPv6アドレスは修飾することも可能です。それにはスコープ・ゾーン識別子、つまりスコープIDを末尾に追加します。スコープIDの構文や使用方法については、ここを参照してください。
hostがnull
の場合、ループバック・インタフェースのアドレスを表すInetAddress
が返されます。RFC 3330セクション 2およびRFC 2373セクション 2.5.3を参照してください。
セキュリティ・マネージャが存在する場合、host
がnullではなく、host.length()
の値がゼロではないときは、セキュリティ・マネージャのcheckConnect
メソッドが、引数としてホスト名と-1
を指定して呼び出され、この操作が許可されているかどうかを確認します。
host
- ホスト名またはnull
。UnknownHostException
- host
のIPアドレスが見つからなかった場合、またはグローバルIPv6アドレスでスコープIDが指定された場合。SecurityException
- セキュリティ・マネージャが存在し、そのcheckConnect
メソッドでこの操作が許可されていない場合。SecurityManager.checkConnect(java.lang.String, int)
public static InetAddress getLoopbackAddress()
返されるInetAddressは、IPv4ループバック・アドレスの127.0.0.1またはIPv6ループバック・アドレスの ::1を表します。返されるIPv4ループバック・アドレスは、127.*.*.*という形式の多くのアドレスのうちの1つだけです。
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
InetAddress
に解決することによって実現されます。
注: 解決されたアドレスは、短時間キャッシュされる場合があります。
セキュリティ・マネージャが存在する場合、引数としてローカル・ホスト名と-1
を指定してセキュリティ・マネージャのcheckConnect
メソッドが呼び出され、この操作が許可されているかどうかが確認されます。この操作が許可されない場合は、ループバック・アドレスを表すInetAddressが返されます。
UnknownHostException
- ローカル・ホスト名をアドレスに解決できなかった場合。SecurityManager.checkConnect(java.lang.String, int)
, getByName(java.lang.String)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.