クラスNetworkInterface
ネットワーク・インタフェースは、ネットワーク・インタフェース・コントローラまたは仮想ネットワーク・アダプタ(コンピュータまたはホスト・システムをコンピュータ・ネットワークに接続するシステム・ハードウェア/ソフトウェア・コンポーネント)の特性をカプセル化する抽象化です。 ネットワーク・インタフェースは物理でも仮想でもかまいません。 ネットワーク・インタフェースには、名前、0個以上の「IPアドレス」、0個以上の「MACアドレス」が割り当てられており、索引を持つことができます。 名前は高度にプラットフォーム固有ですが、"le0"などの名前が一般的です。一意でない場合があります。 索引は、インタフェースを識別するプラットフォーム固有の番号です。 ネットワーク構成は、JVMの存続期間中に変更される場合があります。 たとえば、ネットワーク・インタフェースに割り当てられたIPアドレスのセットは、一時的かつ動的に割り当てられ、いつでも変更される可能性があります。
NetworkInterface
インスタンス(その構成(名前や割り当てられたIPアドレスのリストなど)の一部)を取得すると、作成時の構成が反映されます。 ネットワーク構成の更新されたビューを取得するには、新しいインスタンスを取得するためにネットワーク・インタフェースを再度検索する必要がある場合があります。
ネットワーク・インタフェース・インスタンスは、通常、マルチキャスト・グループが結合されるローカル・インタフェースを識別するために使用されます。
-
メソッドのサマリー
修飾子と型メソッド説明boolean
このオブジェクトと指定されたオブジェクトを比較します。static NetworkInterface
getByIndex
(int index) 指定されたインデックスのネットワーク・インタフェースを取得します。static NetworkInterface
getByInetAddress
(InetAddress addr) 指定されたインターネット・プロトコル(IP)アドレスがバインドされているネットワーク・インタフェースを検索する簡易メソッド。static NetworkInterface
指定された名前のネットワーク・インタフェースを検索します。このネットワーク・インタフェースの表示名を取得します。byte[]
インタフェースがハードウェア・アドレス(通常はMAC)を持っており、そのアドレスに現在の特権を使ってアクセス可能である場合に、そのアドレスを返します。int
getIndex()
このネットワーク・インタフェースのインデックスを返します。このネットワーク・インタフェースにバインドされたInetAddressesの列挙を取得します。このネットワーク・インタフェースのInterfaceAddresses
のリストを取得します。int
getMTU()
このインタフェースの最大転送単位(MTU)を返します。getName()
このネットワーク・インタフェースの名前を取得します。static Enumeration
<NetworkInterface> このマシン上のすべてのインタフェースのEnumeration
を返します。このインタフェースがサブインタフェースの場合はその親となるNetworkInterfaceを返し、このインタフェースが物理(非仮想)インタフェースであるか親を持たない場合はnull
を返します。このネットワーク・インタフェースに接続されたすべてのサブインタフェース(仮想インタフェースとも呼ばれる)を含む列挙を取得します。このネットワーク・インタフェースにバインドされたInetAddressesのストリームを取得します。boolean
ネットワーク・インタフェースがループバック・インタフェースかどうかを返します。boolean
ネットワーク・インタフェースがポイント・ツー・ポイント・インタフェースかどうかを返します。boolean
isUp()
ネットワーク・インタフェースが起動し、動作しているかどうかを返します。boolean
このインタフェースが仮想インタフェース(サブインタフェースとも呼ばれる)かどうかを返します。static Stream
<NetworkInterface> このマシン上のすべてのインタフェースのStream
を返します。このネットワーク・インタフェースに接続されているすべてのサブインタフェース(仮想インタフェースとも呼ばれます)のストリームを取得します。boolean
ネットワーク・インタフェースがマルチキャストをサポートしているかどうかを返します。
-
メソッドの詳細
-
getName
-
getInetAddresses
public Enumeration<InetAddress> getInetAddresses()このネットワーク・インタフェースにバインドされたInetAddressesの列挙を取得します。- 実装上のノート:
- 戻された列挙には、「インタフェース構成が読み取られました」の時点でインタフェースにバインドされたInetAddressesが含まれます
- 戻り値:
- このネットワーク・インタフェースにバインドされたInetAddressesを持つ列挙オブジェクト
- 関連項目:
-
inetAddresses
public Stream<InetAddress> inetAddresses()このネットワーク・インタフェースにバインドされたInetAddressesのストリームを取得します。- 実装上のノート:
- ストリームには、「インタフェース構成が読み取られました」の時点でインタフェースにバインドされたInetAddressesが含まれます
- 戻り値:
- このネットワーク・インタフェースにバインドされたInetAddressesを持つStreamオブジェクト
- 導入されたバージョン:
- 9
-
getInterfaceAddresses
public List<InterfaceAddress> getInterfaceAddresses()このネットワーク・インタフェースのInterfaceAddresses
のリストを取得します。- 戻り値:
- このネットワーク・インタフェースのInterfaceAddressを持つ
List
オブジェクト - 導入されたバージョン:
- 1.6
-
getSubInterfaces
public Enumeration<NetworkInterface> getSubInterfaces()このネットワーク・インタフェースに接続されたすべてのサブインタフェース(仮想インタフェースとも呼ばれる)を含む列挙を取得します。たとえば、eth0:1はeth0のサブインタフェースです。
- 戻り値:
- このネットワーク・インタフェースのすべてのサブインタフェースを含む列挙型オブジェクト
- 導入されたバージョン:
- 1.6
- 関連項目:
-
subInterfaces
public Stream<NetworkInterface> subInterfaces()このネットワーク・インタフェースに接続されているすべてのサブインタフェース(仮想インタフェースとも呼ばれます)のストリームを取得します。- 戻り値:
- このネットワーク・インタフェースのすべてのサブインタフェースを持つStreamオブジェクト
- 導入されたバージョン:
- 9
-
getParent
public NetworkInterface getParent()このインタフェースがサブインタフェースの場合はその親となるNetworkInterfaceを返し、このインタフェースが物理(非仮想)インタフェースであるか親を持たない場合はnull
を返します。- 戻り値:
- このインタフェースが接続されている
NetworkInterface
。 - 導入されたバージョン:
- 1.6
-
getIndex
public int getIndex()このネットワーク・インタフェースのインデックスを返します。 インデックスは0以上の整数です。インデックスが不明な場合は-1
を返します。 これはシステム固有の値で、同じ名前を持つインタフェースでも、マシンが異なるとインデックスが異なる可能性があります。- 戻り値:
- このネットワーク・インタフェースのインデックス。インデックスが不明な場合は
-1
- 導入されたバージョン:
- 1.7
- 関連項目:
-
getDisplayName
public String getDisplayName()このネットワーク・インタフェースの表示名を取得します。 表示名とは、ネットワーク・デバイスを記述した、人間が読むことのできるStringのことです。- 戻り値:
- このネットワーク・インタフェースの表示名を表す空でない文字列。表示名が取得できない場合はnull。
-
getByName
public static NetworkInterface getByName(String name) throws SocketException 指定された名前のネットワーク・インタフェースを検索します。- APIのノート:
- 返されるインタフェース・インスタンスには、インスタンスの作成時に取得された構成のスナップショットが反映される場合があります。 戻されるインタフェースのセマンティクスについては、「スナップショットと構成」の一般的な説明を参照してください。
- パラメータ:
name
−ネットワーク・インタフェースの名前。- 戻り値:
- 指定された名前を持つ
NetworkInterface
。指定された名前のネットワーク・インタフェースが存在しない場合はnull
。 - スロー:
SocketException
- 入出力エラーが発生した場合。NullPointerException
−指定された名前がnull
の場合。
-
getByIndex
public static NetworkInterface getByIndex(int index) throws SocketException 指定されたインデックスのネットワーク・インタフェースを取得します。- APIのノート:
- 返されるインタフェース・インスタンスには、インスタンスの作成時に取得された構成のスナップショットが反映される場合があります。 戻されるインタフェースのセマンティクスについては、「スナップショットと構成」の一般的な説明を参照してください。
- パラメータ:
index
- 整数。インタフェースのインデックス- 戻り値:
- インデックスから取得されたNetworkInterface。システムにそうしたインデックスを持つインタフェースがない場合は
null
- スロー:
SocketException
- 入出力エラーが発生した場合。IllegalArgumentException
- インデックスが負の値の場合- 導入されたバージョン:
- 1.7
- 関連項目:
-
getByInetAddress
public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException 指定されたインターネット・プロトコル(IP)アドレスがバインドされているネットワーク・インタフェースを検索する簡易メソッド。指定されたIPアドレスが複数のネットワーク・インタフェースにバインドされている場合、どのネットワーク・インタフェースが返されるかは未定義となります。
- APIのノート:
- 返されるインタフェース・インスタンスには、インスタンスの作成時に取得された構成のスナップショットが反映される場合があります。 戻されるインタフェースのセマンティクスについては、「スナップショットと構成」の一般的な説明を参照してください。
- パラメータ:
addr
−検索に使用するInetAddress
。- 戻り値:
NetworkInterface
。指定されたIPアドレスを持つネットワーク・インタフェースが存在しない場合はnull
。- スロー:
SocketException
- 入出力エラーが発生した場合。NullPointerException
−指定されたアドレスがnull
の場合。
-
getNetworkInterfaces
public static Enumeration<NetworkInterface> getNetworkInterfaces() throws SocketExceptionこのマシン上のすべてのインタフェースのEnumeration
を返します。Enumeration
には少なくとも1つの要素が含まれます。このマシン上のエンティティ間の通信だけをサポートするループバック・インタフェースを表している場合もあります。- APIのノート:
- このメソッドは、
getInetAddresses()
と組み合せて使用して、このノードのすべてのIPアドレスを取得できます。返されるインタフェース・インスタンスには、インスタンスの作成時に取得された構成のスナップショットが反映される場合があります。 戻されるインタフェースのセマンティクスについては、「スナップショットと構成」の一般的な説明を参照してください。
- 戻り値:
- このマシンで見つかったNetworkInterfacesの列挙
- スロー:
SocketException
- I/Oエラーが発生した場合、またはプラットフォームに少なくとも1つのネットワーク・インタフェースが構成されていない場合。- 関連項目:
-
networkInterfaces
public static Stream<NetworkInterface> networkInterfaces() throws SocketExceptionこのマシン上のすべてのインタフェースのStream
を返します。Stream
には少なくとも1つのインタフェースが含まれており、このマシン上のエンティティ間の通信のみをサポートするループバック・インタフェースを表す場合があります。- APIのノート:
- このメソッドを
inetAddresses()
} と組み合わせて使用すると、このノードのすべてのIPアドレスのストリームを取得できます。たとえば:Stream<InetAddress> addrs = NetworkInterface.networkInterfaces() .flatMap(NetworkInterface::inetAddresses);
返されるインタフェース・インスタンスには、インスタンスの作成時に取得された構成のスナップショットが反映される場合があります。 戻されるインタフェースのセマンティクスについては、「スナップショットと構成」の一般的な説明を参照してください。
- 戻り値:
- このマシンで見つかったNetworkInterfacesのストリーム
- スロー:
SocketException
- I/Oエラーが発生した場合、またはプラットフォームに少なくとも1つのネットワーク・インタフェースが構成されていない場合。- 導入されたバージョン:
- 9
-
isUp
public boolean isUp() throws SocketExceptionネットワーク・インタフェースが起動し、動作しているかどうかを返します。- 戻り値:
- インタフェースが起動し、動作している場合は
true
。 - スロー:
SocketException
- 入出力エラーが発生した場合。- 導入されたバージョン:
- 1.6
-
isLoopback
public boolean isLoopback() throws SocketExceptionネットワーク・インタフェースがループバック・インタフェースかどうかを返します。- 戻り値:
- インタフェースがループバック・インタフェースである場合は
true
。 - スロー:
SocketException
- 入出力エラーが発生した場合。- 導入されたバージョン:
- 1.6
-
isPointToPoint
public boolean isPointToPoint() throws SocketExceptionネットワーク・インタフェースがポイント・ツー・ポイント・インタフェースかどうかを返します。 通常のポイント・ツー・ポイント・インタフェースとして、モデム経由のPPP接続が挙げられます。- 戻り値:
- インタフェースがポイント・ツー・ポイント・インタフェースである場合は
true
。 - スロー:
SocketException
- 入出力エラーが発生した場合。- 導入されたバージョン:
- 1.6
-
supportsMulticast
public boolean supportsMulticast() throws SocketExceptionネットワーク・インタフェースがマルチキャストをサポートしているかどうかを返します。- 戻り値:
- インタフェースがマルチキャストをサポートしている場合は
true
。 - スロー:
SocketException
- 入出力エラーが発生した場合。- 導入されたバージョン:
- 1.6
-
getHardwareAddress
public byte[] getHardwareAddress() throws SocketExceptionインタフェースがハードウェア・アドレス(通常はMAC)を持っており、そのアドレスに現在の特権を使ってアクセス可能である場合に、そのアドレスを返します。- 戻り値:
- アドレスを含むバイト配列、またはアドレスが存在しないかアクセスできない場合は
null
- スロー:
SocketException
- 入出力エラーが発生した場合。- 導入されたバージョン:
- 1.6
-
getMTU
public int getMTU() throws SocketExceptionこのインタフェースの最大転送単位(MTU)を返します。- 戻り値:
- そのインタフェースのMTUの値。
- スロー:
SocketException
- 入出力エラーが発生した場合。- 導入されたバージョン:
- 1.6
-
isVirtual
public boolean isVirtual()このインタフェースが仮想インタフェース(サブインタフェースとも呼ばれる)かどうかを返します。 仮想インタフェースはシステムによっては、ある物理インタフェースの子として作成され、異なる設定(アドレスやMTUなど)が与えられたインタフェースになります。 通常、このインタフェースの名前は、親の名前のあとに、コロン(:)と子を識別するための数字を付加したものになります。これは、単一の物理インタフェースに複数の仮想インタフェースが接続される可能性があるためです。- 戻り値:
- このインタフェースが仮想インタフェースである場合は
true
。 - 導入されたバージョン:
- 1.6
-
equals
public boolean equals(Object obj) このオブジェクトと指定されたオブジェクトを比較します。 引数がnull
ではなく、その引数がこのオブジェクトと同じNetworkInterfaceを表す場合にだけ、結果がtrue
になります。インタフェースにバインドされた
InetAddress
の名前とセットの両方が等しい場合、NetworkInterface
の2つのインスタンスは同じNetworkInterfaceを表します。
-