模块  java.base
软件包  java.net

Class NetworkInterface


  • public final class NetworkInterface
    extends Object
    此类表示由名称和分配给此接口的IP地址列表组成的网络接口。 它用于标识加入多播组的本地接口。 接口通常以诸如“le0”之类的名称而为人所知。
    从以下版本开始:
    1.4
    • 方法详细信息

      • getName

        public String getName()
        获取此网络接口的名称。
        结果
        此网络接口的名称
      • getInetAddresses

        public Enumeration<InetAddress> getInetAddresses()
        获取包含绑定到此网络接口的全部或部分InetAddresses的枚举。

        如果有安全管理器,则为每个InetAddress调用其checkConnect方法。 只有checkConnect不会抛出SecurityException的InetAddresses才会在Enumeration中返回。 但是,如果调用者具有NetPermission (“getNetworkInformation”)权限,则返回所有InetAddresses。

        结果
        Enumeration对象,其中包含绑定到此网络接口的全部或部分InetAddresses
        另请参见:
        inetAddresses()
      • inetAddresses

        public Stream<InetAddress> inetAddresses()
        获取绑定到此网络接口的所有或部分InetAddresses的流。

        如果有安全管理器,则为每个InetAddress调用其checkConnect方法。 只有在checkConnect不会抛出SecurityException的InetAddresses才会在Stream中返回。 但是,如果调用者具有NetPermission (“getNetworkInformation”)权限,则返回所有InetAddresses。

        结果
        一个Stream对象,其中包含绑定到此网络接口的全部或部分InetAddresses
        从以下版本开始:
        9
      • getInterfaceAddresses

        public List<InterfaceAddress> getInterfaceAddresses()
        获取此网络接口的InterfaceAddresses的全部或部分列表。

        如果有安全管理器,则使用每个InterfaceAddress的InetAddress调用其checkConnect方法。 只有checkConnect不会抛出SecurityException的InterfaceAddresses将在List中返回。

        结果
        List对象,包含此网络接口的全部或部分InterfaceAddress
        从以下版本开始:
        1.6
      • getSubInterfaces

        public Enumeration<NetworkInterface> getSubInterfaces()
        获取附加到此网络接口的所有子接口(也称为虚拟接口)的枚举。

        例如,eth0:1将是eth0的子接口。

        结果
        一个Enumeration对象,包含此网络接口的所有子接口
        从以下版本开始:
        1.6
        另请参见:
        subInterfaces()
      • subInterfaces

        public Stream<NetworkInterface> subInterfaces()
        获取连接到此网络接口的所有子接口(也称为虚拟接口)的流。
        结果
        一个Stream对象,包含该网络接口的所有子接口
        从以下版本开始:
        9
      • getParent

        public NetworkInterface getParent()
        如果这是子接口,则返回此接口的父NetworkInterface;如果是物理(非虚拟)接口或没有父接口,则返回 null
        结果
        NetworkInterface此接口附加到。
        从以下版本开始:
        1.6
      • getIndex

        public int getIndex()
        返回此网络接口的索引。 索引是大于或等于零的整数,或者对于未知的-1 这是特定于系统的值,具有相同名称的接口可以在不同的计算机上具有不同的索引。
        结果
        如果索引未知,则此网络接口的索引或 -1
        从以下版本开始:
        1.7
        另请参见:
        getByIndex(int)
      • getDisplayName

        public String getDisplayName()
        获取此网络接口的显示名称。 显示名称是描述网络设备的人类可读字符串。
        结果
        表示此网络接口的显示名称的非空字符串,如果没有可用的显示名称,则为null。
      • getByName

        public static NetworkInterface getByName​(String name)
                                          throws SocketException
        搜索具有指定名称的网络接口。
        参数
        name - 网络接口的名称。
        结果
        NetworkInterface具有指定名称,或 null如果不存在具有指定名称的网络接口。
        异常
        SocketException - 如果发生I / O错误。
        NullPointerException - 如果指定的名称是 null
      • getByIndex

        public static NetworkInterface getByIndex​(int index)
                                           throws SocketException
        根据索引获取网络接口。
        参数
        index - 一个整数,接口的索引
        结果
        从其索引获取的NetworkInterface,如果系统上没有与此类索引的接口, null
        异常
        SocketException - 如果发生I / O错误。
        IllegalArgumentException - 如果索引具有负值
        从以下版本开始:
        1.7
        另请参见:
        getIndex()
      • getByInetAddress

        public static NetworkInterface getByInetAddress​(InetAddress addr)
                                                 throws SocketException
        搜索具有绑定到其的指定Internet协议(IP)地址的网络接口的便捷方法。

        如果指定的IP地址绑定到多个网络接口,则不会定义返回哪个网络接口。

        参数
        addr - 要搜索的 InetAddress
        结果
        如果没有具有指定IP地址的网络接口, NetworkInterfacenull
        异常
        SocketException - 如果发生I / O错误。
        NullPointerException - 如果指定的地址是 null
      • getNetworkInterfaces

        public static Enumeration<NetworkInterface> getNetworkInterfaces()
                                                                  throws SocketException
        返回此计算机上所有接口的Enumeration Enumeration包含至少一个元素,可能表示仅支持此计算机上的实体之间的通信的回送接口。
        API Note:
        此方法可与 getInetAddresses()结合使用,以获取此节点的所有IP地址
        结果
        在此计算机上找到的NetworkInterface枚举
        异常
        SocketException - 如果发生I / O错误,或者平台没有至少一个已配置的网络接口。
        另请参见:
        networkInterfaces()
      • networkInterfaces

        public static Stream<NetworkInterface> networkInterfaces()
                                                          throws SocketException
        返回此计算机上所有接口的Stream Stream包含至少一个接口,可能表示仅支持此计算机上的实体之间的通信的回送接口。
        API Note:
        此方法可与inetAddresses() }结合使用,以获取此节点的所有IP地址流,例如:
           Stream<InetAddress> addrs = NetworkInterface.networkInterfaces() .flatMap(NetworkInterface::inetAddresses);  
        结果
        在此计算机上找到的NetworkInterface流
        异常
        SocketException - 如果发生I / O错误,或者平台没有至少一个已配置的网络接口。
        从以下版本开始:
        9
      • isUp

        public boolean isUp()
                     throws SocketException
        返回网络接口是否已启动并正在运行。
        结果
        true如果接口已启动并正在运行。
        异常
        SocketException - 如果发生I / O错误。
        从以下版本开始:
        1.6
      • isLoopback

        public boolean isLoopback()
                           throws SocketException
        返回网络接口是否为环回接口。
        结果
        true如果接口是环回接口。
        异常
        SocketException - 如果发生I / O错误。
        从以下版本开始:
        1.6
      • isPointToPoint

        public boolean isPointToPoint()
                               throws SocketException
        返回网络接口是否为点对点接口。 典型的点对点接口是通过调制解调器的PPP连接。
        结果
        true如果接口是点对点接口。
        异常
        SocketException - 如果发生I / O错误。
        从以下版本开始:
        1.6
      • supportsMulticast

        public boolean supportsMulticast()
                                  throws SocketException
        返回网络接口是否支持多播。
        结果
        true如果接口支持多播。
        异常
        SocketException - 如果发生I / O错误。
        从以下版本开始:
        1.6
      • getHardwareAddress

        public byte[] getHardwareAddress()
                                  throws SocketException
        返回接口的硬件地址(通常为MAC)(如果有),并且在给定当前权限的情况下可以访问它。 如果设置了安全管理器,则调用者必须具有权限NetPermission (“getNetworkInformation”)。
        结果
        包含地址的字节数组,或者如果地址不存在 null ,则无法访问或设置安全管理器且调用者没有权限NetPermission(“getNetworkInformation”)
        异常
        SocketException - 如果发生I / O错误。
        从以下版本开始:
        1.6
      • getMTU

        public int getMTU()
                   throws SocketException
        返回此接口的最大传输单元(MTU)。
        结果
        该接口的MTU值。
        异常
        SocketException - 如果发生I / O错误。
        从以下版本开始:
        1.6
      • isVirtual

        public boolean isVirtual()
        返回此接口是否为虚拟接口(也称为子接口)。 在某些系统上,虚拟接口是作为物理接口的子级创建的接口,并且具有不同的设置(如地址或MTU)。 通常,接口的名称将是父级的名称,后跟冒号(:)和标识子级的数字,因为可以有多个虚拟接口连接到单个物理接口。
        结果
        true如果此接口是虚拟接口。
        从以下版本开始:
        1.6
      • equals

        public boolean equals​(Object obj)
        将此对象与指定的对象进行比较。 当且仅当参数不是null并且它表示与此对象相同的NetworkInterface时,结果为true

        如果两个名称和地址的名称和地址相同,则NetworkInterface两个实例表示相同的NetworkInterface。

        重写:
        equalsObject
        参数
        obj - 要比较的对象。
        结果
        true如果对象相同; 否则为false
        另请参见:
        InetAddress.getAddress()