クラスNetworkInterface

java.lang.Object
java.net.NetworkInterface

public final class NetworkInterface extends Object
このクラスはネットワーク・インタフェースを表します。

ネットワーク・インタフェースは、ネットワーク・インタフェース・コントローラまたは仮想ネットワーク・アダプタ(コンピュータまたはホスト・システムをコンピュータ・ネットワークに接続するシステム・ハードウェア/ソフトウェア・コンポーネント)の特性をカプセル化する抽象化です。 ネットワーク・インタフェースは物理でも仮想でもかまいません。 ネットワーク・インタフェースには、名前、0個以上の「IPアドレス」、0個以上の「MACアドレス」が割り当てられており、索引を持つことができます。 名前は高度にプラットフォーム固有ですが、"le0"などの名前が一般的です。一意でない場合があります。 索引は、インタフェースを識別するプラットフォーム固有の番号です。 ネットワーク構成は、JVMの存続期間中に変更される場合があります。 たとえば、ネットワーク・インタフェースに割り当てられたIPアドレスのセットは、一時的かつ動的に割り当てられ、いつでも変更される可能性があります。

NetworkInterfaceインスタンス(その構成(名前や割り当てられたIPアドレスのリストなど)の一部)を取得すると、作成時の構成が反映されます。 ネットワーク構成の更新されたビューを取得するには、新しいインスタンスを取得するためにネットワーク・インタフェースを再度検索する必要がある場合があります。

ネットワーク・インタフェース・インスタンスは、通常、マルチキャスト・グループが結合されるローカル・インタフェースを識別するために使用されます。

APIのノート:
このクラスのいくつかの静的メソッドはファクトリ・メソッドであり、インスタンス化時の構成を反映して、NetworkInterfaceの新しいインスタンスを返します。 ネットワーク構成はいつでも変更される可能性があるため、ネットワーク・インタフェースの最新ビューを取得するには、これらのメソッドを再度起動する必要があります。 特に、システムのネットワーク構成が変更された場合、同じインタフェースが同じインデックスで見つかる保証や、同じネットワーク・アドレスがインタフェースにバインドされる保証はありません。
導入されたバージョン:
1.4
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    このオブジェクトと指定されたオブジェクトを比較します。
    getByIndex(int index)
    指定されたインデックスのネットワーク・インタフェースを取得します。
    指定されたインターネット・プロトコル(IP)アドレスがバインドされているネットワーク・インタフェースを検索する簡易メソッド。
    指定された名前のネットワーク・インタフェースを検索します。
    このネットワーク・インタフェースの表示名を取得します。
    byte[]
    インタフェースがハードウェア・アドレス(通常はMAC)を持っており、そのアドレスに現在の特権を使ってアクセス可能である場合に、そのアドレスを返します。
    int
    このネットワーク・インタフェースのインデックスを返します。
    このネットワーク・インタフェースにバインドされたInetAddressesの列挙を取得します。
    このネットワーク・インタフェースのInterfaceAddressesのリストを取得します。
    int
    このインタフェースの最大転送単位(MTU)を返します。
    このネットワーク・インタフェースの名前を取得します。
    このマシン上のすべてのインタフェースのEnumerationを返します。
    このインタフェースがサブインタフェースの場合はその親となるNetworkInterfaceを返し、このインタフェースが物理(非仮想)インタフェースであるか親を持たない場合はnullを返します。
    このネットワーク・インタフェースに接続されたすべてのサブインタフェース(仮想インタフェースとも呼ばれる)を含む列挙を取得します。
    このネットワーク・インタフェースにバインドされたInetAddressesのストリームを取得します。
    boolean
    ネットワーク・インタフェースがループバック・インタフェースかどうかを返します。
    boolean
    ネットワーク・インタフェースがポイント・ツー・ポイント・インタフェースかどうかを返します。
    boolean
    ネットワーク・インタフェースが起動し、動作しているかどうかを返します。
    boolean
    このインタフェースが仮想インタフェース(サブインタフェースとも呼ばれる)かどうかを返します。
    このマシン上のすべてのインタフェースのStreamを返します。
    このネットワーク・インタフェースに接続されているすべてのサブインタフェース(仮想インタフェースとも呼ばれます)のストリームを取得します。
    boolean
    ネットワーク・インタフェースがマルチキャストをサポートしているかどうかを返します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • メソッドの詳細

    • getName

      public String 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を表します。

      オーバーライド:
      equals、クラスObject
      APIのノート:
      ベースとなるインタフェースのアドレスがシステムによって動的に更新されている場合、同じベースとなるインタフェースを参照している複数のNetworkInterfaceオブジェクトを比較することはできません。
      パラメータ:
      obj - 比較対象のオブジェクト。
      戻り値:
      オブジェクトが同じである場合はtrue、そうでない場合はfalse
      関連項目: