モジュール java.base
パッケージ java.net

クラスNetworkInterface


  • public final class NetworkInterface
    extends Object
    このクラスは、名前と、このインタフェースに割り当てられた一連のIPアドレスから成るネットワーク・インタフェースを表します。 これは、マルチキャスト・グループへの参加に使用するローカル・インタフェースを特定するのに使用されます。 インタフェースは通常、「le0」などの名前で識別されます。
    導入されたバージョン:
    1.4
    • メソッドのサマリー

      すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      boolean equals​(Object obj)
      このオブジェクトと指定されたオブジェクトを比較します。
      static NetworkInterface getByIndex​(int index)
      指定されたインデックスのネットワーク・インタフェースを取得します。
      static NetworkInterface getByInetAddress​(InetAddress addr)
      指定されたインターネット・プロトコル(IP)アドレスがバインドされているネットワーク・インタフェースを検索する簡易メソッド。
      static NetworkInterface getByName​(String name)
      指定された名前のネットワーク・インタフェースを検索します。
      String getDisplayName()
      このネットワーク・インタフェースの表示名を取得します。
      byte[] getHardwareAddress()
      インタフェースがハードウェア・アドレス(通常はMAC)を持っており、そのアドレスに現在の特権を使ってアクセス可能である場合に、そのアドレスを返します。
      int getIndex()
      このネットワーク・インタフェースのインデックスを返します。
      Enumeration<InetAddress> getInetAddresses()
      このネットワーク・インタフェースにバインドされたInetAddressesのすべてまたサブセットを持つEnumerationを取得します。
      List<InterfaceAddress> getInterfaceAddresses()
      このネットワーク・インタフェースのInterfaceAddressesのすべてまたはサブセットのリストを取得します。
      int getMTU()
      このインタフェースの最大転送単位(MTU)を返します。
      String getName()
      このネットワーク・インタフェースの名前を取得します。
      static Enumeration<NetworkInterface> getNetworkInterfaces()
      このマシン上のすべてのインタフェースのEnumerationを返します。
      NetworkInterface getParent()
      このインタフェースがサブインタフェースの場合はその親となるNetworkInterfaceを返し、このインタフェースが物理(非仮想)インタフェースであるか親を持たない場合はnullを返します。
      Enumeration<NetworkInterface> getSubInterfaces()
      このネットワーク・インタフェースに接続されたすべてのサブインタフェース(仮想インタフェースとも呼ばれる)を含む列挙を取得します。
      Stream<InetAddress> inetAddresses()
      このネットワーク・インタフェースにバインドされたInetAddressesのすべてまたは一部のストリームを取得します。
      boolean isLoopback()
      ネットワーク・インタフェースがループバック・インタフェースかどうかを返します。
      boolean isPointToPoint()
      ネットワーク・インタフェースがポイント・ツー・ポイント・インタフェースかどうかを返します。
      boolean isUp()
      ネットワーク・インタフェースが起動し、動作しているかどうかを返します。
      boolean isVirtual()
      このインタフェースが仮想インタフェース(サブインタフェースとも呼ばれる)かどうかを返します。
      static Stream<NetworkInterface> networkInterfaces()
      このマシン上のすべてのインタフェースのStreamを返します。
      Stream<NetworkInterface> subInterfaces()
      このネットワーク・インタフェースにアタッチされたすべてのサブインタフェース(仮想インタフェースとも呼ばれます)のストリームを取得します。
      boolean supportsMulticast()
      ネットワーク・インタフェースがマルチキャストをサポートしているかどうかを返します。
    • メソッドの詳細

      • getName

        public String getName()
        このネットワーク・インタフェースの名前を取得します。
        戻り値:
        このネットワーク・インタフェースの名前
      • getInetAddresses

        public Enumeration<InetAddress> getInetAddresses()
        このネットワーク・インタフェースにバインドされたInetAddressesのすべてまたサブセットを持つEnumerationを取得します。

        セキュリティ・マネージャが存在する場合、InetAddressごとにそのcheckConnectメソッドが呼び出されます。 checkConnectがSecurityExceptionをスローしないInetAddressだけが、列挙内に返されます。 ただし、呼出し元がNetPermission(getNetworkInformation)アクセス権を持っている場合は、すべてのInetAddressが返されます。

        戻り値:
        このネットワーク・インタフェースにバインドされたInetAddressesのすべてまたはサブセットの列挙オブジェクト
        関連項目:
        inetAddresses()
      • inetAddresses

        public Stream<InetAddress> inetAddresses()
        このネットワーク・インタフェースにバインドされたInetAddressesのすべてまたは一部のストリームを取得します。

        セキュリティ・マネージャが存在する場合、InetAddressごとにそのcheckConnectメソッドが呼び出されます。 checkConnectがSecurityExceptionをスローしないInetAddressesのみがStreamに返されます。 ただし、呼出し元がNetPermission(getNetworkInformation)アクセス権を持っている場合は、すべてのInetAddressが返されます。

        戻り値:
        このネットワーク・インタフェースにバインドされたInetAddressesのすべてまたは一部を持つStreamオブジェクト
        導入されたバージョン:
        9
      • getInterfaceAddresses

        public List<InterfaceAddress> getInterfaceAddresses()
        このネットワーク・インタフェースのInterfaceAddressesのすべてまたはサブセットのリストを取得します。

        セキュリティ・マネージャが存在する場合、InterfaceAddressごとに、InetAddressを指定してセキュリティ・マネージャのcheckConnectメソッドが呼び出されます。 checkConnectがSecurityExceptionをスローしないInterfaceAddressだけが、リスト内に返されます。

        戻り値:
        このネットワーク・インタフェースのInterfaceAddressのすべてまたはサブセットのListオブジェクト
        導入されたバージョン:
        1.6
      • getSubInterfaces

        public Enumeration<NetworkInterface> getSubInterfaces()
        このネットワーク・インタフェースに接続されたすべてのサブインタフェース(仮想インタフェースとも呼ばれる)を含む列挙を取得します。

        たとえば、eth0:1はeth0のサブインタフェースです。

        戻り値:
        このネットワーク・インタフェースのすべてのサブインタフェースを含む列挙型オブジェクト
        導入されたバージョン:
        1.6
        関連項目:
        subInterfaces()
      • 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
        関連項目:
        getByIndex(int)
      • getDisplayName

        public String getDisplayName()
        このネットワーク・インタフェースの表示名を取得します。 表示名とは、ネットワーク・デバイスを記述した、人間が読むことのできるStringのことです。
        戻り値:
        このネットワーク・インタフェースの表示名を表す空でない文字列。表示名が取得できない場合はnull。
      • getByName

        public static NetworkInterface getByName​(String name)
                                          throws SocketException
        指定された名前のネットワーク・インタフェースを検索します。
        パラメータ:
        name−ネットワーク・インタフェースの名前。
        戻り値:
        指定された名前を持つNetworkInterface。指定された名前のネットワーク・インタフェースが存在しない場合はnull
        例外:
        SocketException - 入出力エラーが発生した場合。
        NullPointerException−指定された名前がnullの場合。
      • getByIndex

        public static NetworkInterface getByIndex​(int index)
                                           throws SocketException
        指定されたインデックスのネットワーク・インタフェースを取得します。
        パラメータ:
        index - 整数。インタフェースのインデックス
        戻り値:
        インデックスから取得されたNetworkInterface。システムにそうしたインデックスを持つインタフェースがない場合はnull
        例外:
        SocketException - 入出力エラーが発生した場合。
        IllegalArgumentException - インデックスが負の値の場合
        導入されたバージョン:
        1.7
        関連項目:
        getIndex()
      • getByInetAddress

        public static NetworkInterface getByInetAddress​(InetAddress addr)
                                                 throws SocketException
        指定されたインターネット・プロトコル(IP)アドレスがバインドされているネットワーク・インタフェースを検索する簡易メソッド。

        指定されたIPアドレスが複数のネットワーク・インタフェースにバインドされている場合、どのネットワーク・インタフェースが返されるかは未定義となります。

        パラメータ:
        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()
      • 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)を持っており、そのアドレスに現在の特権を使ってアクセス可能である場合に、そのアドレスを返します。 セキュリティ・マネージャが設定されている場合は、呼出し元がアクセス権NetPermission(getNetworkInformation)を持っている必要があります。
        戻り値:
        アドレスが格納されているバイト配列。アドレスが存在しない場合、アドレスにアクセスできない場合、またはセキュリティ・マネージャが設定されている場合は、呼出し元がアクセス権NetPermission (「getNetworkInformation」)を持っていなければ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になります。

        名前とアドレスが両方とも同じ場合、NetworkInterfaceの2つのインスタンスは同じNetworkInterfaceを表します。

        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        obj - 比較対象のオブジェクト。
        戻り値:
        オブジェクトが同じである場合はtrue、そうでない場合はfalse
        関連項目:
        InetAddress.getAddress()