- java.lang.Object
- 
- java.net.InetAddress
 
- 
- すべての実装されたインタフェース:
- Serializable
 - 直系の既知のサブクラス:
- Inet4Address,- Inet6Address
 
 public class InetAddress extends Object implements Serializable IP (Internet Protocol)アドレスを表すクラスです。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アドレスと、場合によってはそれに対応するホスト名から構成されます。ホスト名が含まれるかどうかは、そのインスタンスがホスト名を使って構築されているかどうか、またはそのインスタンスがホスト名の逆解決をすでに実行したかどうかによって決まります。 アドレスの型Address Type 説明 ユニキャスト 単一インタフェースの識別子。 ユニキャスト・アドレスに送信されたパケットは、そのアドレスによって識別されるインタフェースに配信されます。 未指定のアドレス -- 任意ローカル・アドレスまたはワイルドカード・アドレスとも呼ばれます。 これはどのノードにも割り当てないでください。 これはアドレスがないことを示します。 このアドレスを使った例としてバインドの対象があります。これを使うと、あるサーバー・ホストに複数のインタフェースがある場合に、そのサーバーが任意のインタフェース上でクライアントの接続を受け入れることができます。 未指定のアドレスは、IPパケットの転送先アドレスとして使用してはいけません。 ループ・バック・アドレス -- これはループバック・インタフェースに割り当てられるアドレスです。 このIPアドレスに送信された内容はすべてループして元に戻され、ローカル・ホストのIP入力となります。 このアドレスは、クライアントのテスト時によく使用されます。 マルチキャスト 一連のインタフェース(通常は別のノードに属している)の識別子。 マルチキャスト・アドレスに送信されたパケットは、そのアドレスによって識別されるすべてのインタフェースに配信されます。 IPアドレスのスコープリンク・ローカル・アドレスは、自動アドレス構成、隣接アドレスの発見などを目的として、あるいはルーターが存在しない場合に、単一リンクのアドレス指定に使うために設計されています。 サイト・ローカル・アドレスは、グローバル接頭辞を必要としないサイト内のアドレス指定に使うために設計されています。 グローバル・アドレスは、インターネット全体で一意です。 IPアドレスのテキスト表現IPアドレスのテキスト表現はアドレス・ファミリに固有です。IPv4のアドレス形式については、Inet4Addressを参照してください。IPv6のアドレス形式については、Inet6Addressを参照してください。 IPv4とIPv6のアドレスがどのように使用されるかに影響を与えるいくつかのシステム・プロパティが存在します。 ホスト名の解決ホスト名からIPアドレスへの解決は、ローカル・マシン構成情報と、ドメイン・ネーム・システム(DNS)やネットワーク情報サービス(NIS)などのネットワーク・ネーム・サービスとを組み合わせて使用することで実現されます。 使用される個別のネーム・サービスは、デフォルトではローカル・マシンに構成されているネーム・サービスです。 任意のホスト名について、それに対応するIPアドレスが返されます。逆名前解決では、任意のIPアドレスについて、そのIPアドレスに関連するホスト名が返されます。 InetAddressクラスは、ホスト名からそのIPアドレスへの解決、およびその逆の解決のメソッドを提供します。 InetAddressのキャッシュInetAddressクラスは、成功したホスト名解決と失敗したホスト名解決を格納するためのキャッシュを備えています。デフォルトでは、セキュリティ・マネージャがインストールされている場合は、DNSなりすまし攻撃から身を守るため、成功したホスト名解決の結果が永続的にキャッシュされます。 セキュリティ・マネージャがインストールされていない場合のデフォルト動作では、ある限られた期間(実装に依存する)だけエントリがキャッシュされます。 失敗したホスト名解決の結果は、パフォーマンスの向上のために短時間(10秒)だけキャッシュされます。 デフォルト動作が要求に合わない場合は、ポジティブ・キャッシュ用のJavaセキュリティ・プロパティを異なる有効期間(TTL)値に設定することができます。 同様に、システム管理者は、異なるネガティブ・キャッシュTTL値を必要に応じて設定することができます。 2つのJavaセキュリティ・プロパティにより、ポジティブおよびネガティブのホスト名解決のキャッシュに使用するTTL値を制御します。 - networkaddress.cache.ttl
- ネーム・サービスによる成功した名前検索に対するキャッシング・ポリシーを示します。 この値は、正常なルックアップをキャッシュする秒数を示す整数で指定します。 デフォルト設定は、実装に固有の期間キャッシュすることです。 
 -1の値は、「ずっとキャッシュする」という意味です。 
- networkaddress.cache.negative.ttl (デフォルト: 10)
- ネーム・サービスによる失敗した名前検索に対するキャッシング・ポリシーを示します。 この値は、失敗したルックアップの失敗をキャッシュする秒数を示す整数として指定されます。 
 0の値は、「キャッシュしない」という意味です。 -1の値は、「ずっとキャッシュする」という意味です。 
 
- 
- 
メソッドのサマリーすべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 booleanequals(Object obj)このオブジェクトと指定されたオブジェクトを比較します。byte[]getAddress()このInetAddressオブジェクトの生のIPアドレスを返します。static InetAddress[]getAllByName(String host)ホスト名を指定すると、システムに設定されているネーム・サービスに基づいてそのIPアドレスの配列を返します。static InetAddressgetByAddress(byte[] addr)指定された生のIPアドレスを表すInetAddressオブジェクトを返します。static InetAddressgetByAddress(String host, byte[] addr)指定されたホスト名とIPアドレスに基づいてInetAddressを作成します。static InetAddressgetByName(String host)指定されたホスト名を持つホストのIPアドレスを取得します。StringgetCanonicalHostName()このIPアドレスに対応する完全指定ドメイン名を取得します。StringgetHostAddress()テキスト表現のIPアドレス文字列を返します。StringgetHostName()このIPアドレスに対応するホスト名を取得します。static InetAddressgetLocalHost()ローカル・ホストのアドレスを返します。static InetAddressgetLoopbackAddress()ループバック・アドレスを返します。inthashCode()このIPアドレスのハッシュ・コードを返します。booleanisAnyLocalAddress()InetAddressがワイルドカード・アドレスかどうかを調べるユーティリティ・ルーチン。booleanisLinkLocalAddress()InetAddressがリンク・ローカル・アドレスかどうかを調べるユーティリティ・ルーチンです。booleanisLoopbackAddress()InetAddressがループバック・アドレスかどうかを調べるユーティリティ・ルーチンです。booleanisMCGlobal()マルチキャスト・アドレスにグローバル・スコープがあるかどうかを調べるユーティリティ・ルーチンです。booleanisMCLinkLocal()マルチキャスト・アドレスにリンク・スコープがあるかどうかを調べるユーティリティ・ルーチンです。booleanisMCNodeLocal()マルチキャスト・アドレスにノード・スコープがあるかどうかを調べるユーティリティ・ルーチンです。booleanisMCOrgLocal()マルチキャスト・アドレスに組織スコープがあるかどうかを調べるユーティリティ・ルーチンです。booleanisMCSiteLocal()マルチキャスト・アドレスにサイト・スコープがあるかどうかを調べるユーティリティ・ルーチンです。booleanisMulticastAddress()InetAddressがIPマルチキャスト・アドレスかどうかを調べるユーティリティ・ルーチンです。booleanisReachable(int timeout)そのアドレスに到達可能かどうかをテストします。booleanisReachable(NetworkInterface netif, int ttl, int timeout)そのアドレスに到達可能かどうかをテストします。booleanisSiteLocalAddress()InetAddressがサイト・ローカル・アドレスかどうかを調べるユーティリティ・ルーチンです。StringtoString()このIPアドレスをStringに変換します。
 
- 
- 
- 
メソッドの詳細- 
isMulticastAddresspublic boolean isMulticastAddress() InetAddressがIPマルチキャスト・アドレスかどうかを調べるユーティリティ・ルーチンです。- 戻り値:
- InetAddressがIPマルチキャスト・アドレスかどうかを示すboolean
- 導入されたバージョン:
- 1.1
 
 - 
isAnyLocalAddresspublic boolean isAnyLocalAddress() InetAddressがワイルドカード・アドレスかどうかを調べるユーティリティ・ルーチン。- 戻り値:
- InetAddressがワイルドカード・アドレスかどうかを示すboolean。
- 導入されたバージョン:
- 1.4
 
 - 
isLoopbackAddresspublic boolean isLoopbackAddress() InetAddressがループバック・アドレスかどうかを調べるユーティリティ・ルーチンです。- 戻り値:
- InetAddressがループバック・アドレスかどうかを示すboolean。ループバック・アドレスでない場合はfalse。
- 導入されたバージョン:
- 1.4
 
 - 
isLinkLocalAddresspublic boolean isLinkLocalAddress() InetAddressがリンク・ローカル・アドレスかどうかを調べるユーティリティ・ルーチンです。- 戻り値:
- InetAddressがリンク・ローカル・アドレスかどうかを示すboolean。アドレスがリンク・ローカル・ユニキャスト・アドレスでない場合はfalse。
- 導入されたバージョン:
- 1.4
 
 - 
isSiteLocalAddresspublic boolean isSiteLocalAddress() InetAddressがサイト・ローカル・アドレスかどうかを調べるユーティリティ・ルーチンです。- 戻り値:
- InetAddressがサイト・ローカル・アドレスかどうかを示すboolean。アドレスがサイト・ローカル・ユニキャスト・アドレスでない場合はfalse。
- 導入されたバージョン:
- 1.4
 
 - 
isMCGlobalpublic boolean isMCGlobal() マルチキャスト・アドレスにグローバル・スコープがあるかどうかを調べるユーティリティ・ルーチンです。- 戻り値:
- アドレスがグローバル・スコープのマルチキャスト・アドレスかどうかを示すboolean。それがグローバル・スコープのアドレスでないかマルチキャスト・アドレスでない場合はfalse
- 導入されたバージョン:
- 1.4
 
 - 
isMCNodeLocalpublic boolean isMCNodeLocal() マルチキャスト・アドレスにノード・スコープがあるかどうかを調べるユーティリティ・ルーチンです。- 戻り値:
- アドレスがノード・ローカル・スコープのマルチキャスト・アドレスかどうかを示すboolean。それがノード・ローカル・スコープのアドレスでないかマルチキャスト・アドレスでない場合はfalse
- 導入されたバージョン:
- 1.4
 
 - 
isMCLinkLocalpublic boolean isMCLinkLocal() マルチキャスト・アドレスにリンク・スコープがあるかどうかを調べるユーティリティ・ルーチンです。- 戻り値:
- アドレスがリンク・ローカル・スコープのマルチキャスト・アドレスかどうかを示すboolean。それがリンク・ローカル・スコープのアドレスでないかマルチキャスト・アドレスでない場合はfalse
- 導入されたバージョン:
- 1.4
 
 - 
isMCSiteLocalpublic boolean isMCSiteLocal() マルチキャスト・アドレスにサイト・スコープがあるかどうかを調べるユーティリティ・ルーチンです。- 戻り値:
- アドレスがサイト・ローカル・スコープのマルチキャスト・アドレスかどうかを示すboolean。それがサイト・ローカル・スコープのアドレスでないかマルチキャスト・アドレスでない場合はfalse
- 導入されたバージョン:
- 1.4
 
 - 
isMCOrgLocalpublic boolean isMCOrgLocal() マルチキャスト・アドレスに組織スコープがあるかどうかを調べるユーティリティ・ルーチンです。- 戻り値:
- アドレスが組織ローカル・スコープのマルチキャスト・アドレスかどうかを示すboolean。それが組織ローカル・スコープのアドレスでないかマルチキャスト・アドレスでない場合はfalse
- 導入されたバージョン:
- 1.4
 
 - 
isReachablepublic boolean isReachable(int timeout) throws IOExceptionそのアドレスに到達可能かどうかをテストします。 実装ではできるだけホストに到達しようとしますが、ファイアウォールやサーバー構成によって要求がブロックされるため、いくつかの特定のポートがアクセス可能であるにもかかわらず、到達不可能なステータスになる可能性があります。 通常の実装では、特権を取得できる場合はICMP ECHO REQUESTを使用し、それ以外の場合は接続先ホストのポート7 (Echo)上でTCP接続を確立しようとします。タイム・アウト値(ミリ秒)は、この試行の最大所要時間を示します。 応答が得られる前に操作がタイム・アウトした場合、そのホストは到達不可能とみなされます。 値が負の場合、IllegalArgumentExceptionがスローされます。 - パラメータ:
- timeout- 呼出しが中止されるまでのミリ秒単位の時間
- 戻り値:
- アドレスが到達可能かどうかを示すboolean。
- 例外:
- IOException- ネットワーク・エラーが発生した場合
- IllegalArgumentException-- timeoutが負の値の場合。
- 導入されたバージョン:
- 1.5
 
 - 
isReachablepublic boolean isReachable(NetworkInterface netif, int ttl, int timeout) throws IOException そのアドレスに到達可能かどうかをテストします。 実装ではできるだけホストに到達しようとしますが、ファイアウォールやサーバー構成によって要求がブロックされるため、いくつかの特定のポートがアクセス可能であるにもかかわらず、到達不可能なステータスになる可能性があります。 通常の実装では、特権を取得できる場合はICMP ECHO REQUESTを使用し、それ以外の場合は接続先ホストのポート7 (Echo)上でTCP接続を確立しようとします。ネットワーク・インタフェース・パラメータとttlパラメータを使えば、呼出し元は、テストの実行経路となるネットワーク・インタフェースと、パケットの最大ホップ数を指定できます。ttlの値が負の場合、IllegalArgumentExceptionがスローされます。タイム・アウト値(ミリ秒)は、この試行の最大所要時間を示します。 応答が得られる前に操作がタイム・アウトした場合、そのホストは到達不可能とみなされます。 値が負の場合、IllegalArgumentExceptionがスローされます。 - パラメータ:
- netif−テストの実行経路となるNetworkInterface。どのインタフェースでもかまわない場合はnull
- ttl−試みるべきホップの最大数。デフォルトは0
- timeout- 呼出しが中止されるまでのミリ秒単位の時間
- 戻り値:
- アドレスが到達可能かどうかを示すboolean。
- 例外:
- IllegalArgumentException-- timeoutまたは- ttlが負の場合。
- IOException- ネットワーク・エラーが発生した場合
- 導入されたバージョン:
- 1.5
 
 - 
getHostNamepublic String getHostName() このIPアドレスに対応するホスト名を取得します。このInetAddressがホスト名を指定して作成されたものである場合は、記憶されているそのホスト名が返されます。そうでない場合は、システムで設定された名前検索サービスに基づいて逆名前検索が実行され、その結果が返されます。 ネーム・サービスの検索が必要になった場合は、 getCanonicalHostNameを呼び出します。セキュリティ・マネージャが存在する場合は、まずセキュリティ・マネージャの checkConnectメソッドがホスト名および-1を引数として呼び出され、操作が許可されるかどうかが確認されます。 操作が許可されていない場合、IPアドレスのテキスト表現を返します。- 戻り値:
- このIPアドレスのホスト名。セキュリティ・チェックによってこの操作が許可されていない場合は、このIPアドレスのテキスト表現。
- 関連項目:
- getCanonicalHostName(),- SecurityManager.checkConnect(java.lang.String, int)
 
 - 
getCanonicalHostNamepublic String getCanonicalHostName() このIPアドレスに対応する完全指定ドメイン名を取得します。 ベスト・エフォート型のメソッドです。つまり、このメソッドは、背後のシステム構成によってはFQDNを返せない可能性があります。セキュリティ・マネージャが存在する場合、このメソッドはまず、ホスト名と -1を引数に指定してそのcheckConnectメソッドを呼び出し、呼出し元のコードがこのIPアドレスのホスト名を知ること(つまり、そのホストに接続すること)を許可されているかどうかを確認します。 操作が許可されていない場合、IPアドレスのテキスト表現を返します。- 戻り値:
- このIPアドレスの完全指定ドメイン名。セキュリティ・チェックによってこの操作が許可されていない場合は、このIPアドレスのテキスト表現。
- 導入されたバージョン:
- 1.4
- 関連項目:
- SecurityManager.checkConnect(java.lang.String, int)
 
 - 
getAddresspublic byte[] getAddress() このInetAddressオブジェクトの生のIPアドレスを返します。 その結果はネットワーク・バイト順序になります。アドレスの最上位順序バイトはgetAddress()[0].内に存在します。- 戻り値:
- このオブジェクトのIPアドレス。
 
 - 
getHostAddresspublic String getHostAddress() テキスト表現のIPアドレス文字列を返します。- 戻り値:
- IPアドレスの文字列形式。
- 導入されたバージョン:
- 1.0.2
 
 - 
hashCodepublic int hashCode() このIPアドレスのハッシュ・コードを返します。- オーバーライド:
- hashCode、クラス- Object
- 戻り値:
- このIPアドレスのハッシュ・コード値。
- 関連項目:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
 - 
equalspublic boolean equals(Object obj) このオブジェクトと指定されたオブジェクトを比較します。 引数がnullではなく、その引数がこのオブジェクトと同じIPアドレスを表す場合にだけ、結果がtrueになります。getAddressによって返されるバイト配列の長さが同じであり、バイト配列の各コンポーネントが同じである場合、2つのInetAddressのインスタンスは同じIPアドレスを表しています。- オーバーライド:
- equals、クラス- Object
- パラメータ:
- obj- 比較対象のオブジェクト。
- 戻り値:
- オブジェクトが同じである場合はtrue、そうでない場合はfalse。
- 関連項目:
- getAddress()
 
 - 
toStringpublic String toString() このIPアドレスをStringに変換します。 返される文字列の形式は、「ホスト名/リテラルIPアドレス」になります。 ホスト名が未解決の場合、逆ネーム・サービス検索は実行されません。 ホスト名の部分は空の文字列で表現されます。
 - 
getByAddresspublic static InetAddress getByAddress(String host, byte[] addr) throws UnknownHostException 指定されたホスト名とIPアドレスに基づいてInetAddressを作成します。 アドレスの有効性を確認するためのネーム・サービスのチェックは行われません。ホスト名は、「 java.sun.com」などのマシン名か、またはそのIPアドレスのテキスト表現です。ホスト名の有効性チェックも一切実行されません。 addrにIPv4アドレスを指定すると、Inet4Addressのインスタンスが返されます。そうでない場合は、Inet6Addressのインスタンスが返されます。 IPv4アドレスのバイト配列は4バイト長、IPv6のバイト配列は16バイト長である必要があります。 - パラメータ:
- host- 指定されたホスト
- addr- ネットワーク・バイト・オーダーのIPアドレス
- 戻り値:
- IPアドレスから生成されたInetAddressオブジェクト。
- 例外:
- UnknownHostException- IPアドレスの長さが不正の場合
- 導入されたバージョン:
- 1.4
 
 - 
getByNamepublic static InetAddress getByName(String host) throws UnknownHostException 指定されたホスト名を持つホストのIPアドレスを取得します。ホスト名は、「 java.sun.com」などのマシン名か、またはそのIPアドレスのテキスト表現です。 リテラルIPアドレスが指定された場合、アドレス形式の有効性のみがチェックされます。リテラルIPv6アドレスで指定される hostについては、RFC 2732で定義されている形式か、RFC 2373で定義されているリテラルIPv6アドレス形式が可能です。 IPv6スコープ・アドレスもサポートされています。 IPv6スコープ・アドレスについては、ここを参照してください。ホストが nullまたはhost.length()がゼロと等しい場合は、ループバック・インタフェースのアドレスを表すInetAddressが返されます。 RFC 3330セクション 2およびRFC 2373セクション 2.5.3を参照してください。セキュリティ・マネージャが存在し、 hostがnullまたはhost.length()がゼロと等しくない場合、セキュリティ・マネージャcheckConnectメソッドが、操作が許可されるかどうかを判断するために、引数としてhostnameと-1をコールされます。- パラメータ:
- host- 指定されたホストまたは- null。
- 戻り値:
- 指定されたホスト名のIPアドレス。
- 例外:
- UnknownHostException-- hostのIPアドレスが見つからなかった場合、またはグローバルIPv6アドレスでスコープIDが指定された場合。
- SecurityException- セキュリティ・マネージャが存在し、そのcheckConnectメソッドでこの操作が許可されていない場合。
 
 - 
getAllByNamepublic static InetAddress[] getAllByName(String host) throws UnknownHostException ホスト名を指定すると、システムに設定されているネーム・サービスに基づいてそのIPアドレスの配列を返します。ホスト名は、「 java.sun.com」などのマシン名か、またはそのIPアドレスのテキスト表現です。 リテラルIPアドレスが指定された場合、アドレス形式の有効性のみがチェックされます。リテラルIPv6アドレスで指定される hostについては、RFC 2732で定義されている形式か、RFC 2373で定義されているリテラルIPv6アドレス形式が可能です。 リテラルIPv6アドレスは修飾することも可能です。それにはスコープ・ゾーン識別子、つまりスコープIDを末尾に追加します。 スコープIDの構文や使用方法については、ここを参照してください。ホストが nullまたはhost.length()がゼロと等しい場合は、ループバック・インタフェースのアドレスを表すInetAddressが返されます。 RFC 3330セクション 2およびRFC 2373セクション 2.5.3を参照してください。セキュリティ・マネージャが存在し、 hostがnullまたはhost.length()がゼロと等しくない場合、セキュリティ・マネージャcheckConnectメソッドが、操作が許可されるかどうかを判断するために、引数としてhostnameと-1をコールされます。- パラメータ:
- host- ホスト名または- null。
- 戻り値:
- 指定されたホスト名のすべてのIPアドレスを含む配列。
- 例外:
- UnknownHostException-- hostのIPアドレスが見つからなかった場合、またはグローバルIPv6アドレスでスコープIDが指定された場合。
- SecurityException- セキュリティ・マネージャが存在し、その- checkConnectメソッドでこの操作が許可されていない場合。
- 関連項目:
- SecurityManager.checkConnect(java.lang.String, int)
 
 - 
getLoopbackAddresspublic static InetAddress getLoopbackAddress() ループバック・アドレスを返します。返されるInetAddressは、IPv4ループバック・アドレスの127.0.0.1またはIPv6ループバック・アドレスの ::1を表します。 返されるIPv4ループバック・アドレスは、127.*.*.*という形式の多くのアドレスのうちの1つだけです。 - 戻り値:
- InetAddressループバック・インスタンス。
- 導入されたバージョン:
- 1.7
 
 - 
getByAddresspublic static InetAddress getByAddress(byte[] addr) throws UnknownHostException 指定された生のIPアドレスを表すInetAddressオブジェクトを返します。 引数はネットワーク・バイト順序になります。アドレスの最上位順序バイトはgetAddress()[0].内に存在します。このメソッドはブロックしません。つまり、逆ネーム・サービス検索は実行されません。 IPv4アドレスのバイト配列は4バイト長、IPv6のバイト配列は16バイト長である必要があります。 - パラメータ:
- addr- ネットワーク・バイト・オーダーのIPアドレス
- 戻り値:
- IPアドレスから生成されたInetAddressオブジェクト。
- 例外:
- UnknownHostException- IPアドレスの長さが不正の場合
- 導入されたバージョン:
- 1.4
 
 - 
getLocalHostpublic static InetAddress getLocalHost() throws UnknownHostException ローカル・ホストのアドレスを返します。 これは、システムからホスト名を取得してから、その名前をInetAddressに解決することによって実現されます。ノート: 解決されたアドレスは、短時間キャッシュされる場合があります。 セキュリティ・マネージャが存在する場合、引数としてローカル・ホスト名と -1を指定してセキュリティ・マネージャのcheckConnectメソッドが呼び出され、この操作が許可されているかどうかが確認されます。 この操作が許可されない場合は、ループバック・アドレスを表すInetAddressが返されます。- 戻り値:
- ローカル・ホストのアドレス。
- 例外:
- UnknownHostException- ローカル・ホスト名をアドレスに解決できなかった場合。
- 関連項目:
- SecurityManager.checkConnect(java.lang.String, int),- getByName(java.lang.String)
 
 
- 
 
-