Package java.net

Class NetworkInterface

java.lang.Object
java.net.NetworkInterface

public final class NetworkInterface
extends Object
This class is used to represent a network interface of the local device. An interface is defined by its address and a platform dependent name. The class provides methods to get all information about the available interfaces of the system or to identify the local interface of a joined multicast group.
  • Method Summary

    Modifier and Type Method Description
    boolean equals​(Object obj)
    Compares the specified object to this NetworkInterface and returns whether they are equal or not.
    static NetworkInterface getByIndex​(int index)
    Returns the NetworkInterface corresponding to the given interface index, or null if no interface has this index.
    static NetworkInterface getByInetAddress​(InetAddress address)
    Returns the NetworkInterface corresponding to the given address, or null if no interface has this address.
    static NetworkInterface getByName​(String interfaceName)
    Returns the NetworkInterface corresponding to the named network interface, or null if no interface has this name.
    String getDisplayName()
    Returns a human-readable name for this network interface.
    byte[] getHardwareAddress()
    Returns the hardware address of the interface, if it has one, or null otherwise.
    int getIndex()
    Returns the index for the network interface, or -1 if unknown.
    Enumeration<InetAddress> getInetAddresses()
    Returns an enumeration of the addresses bound to this network interface.
    List<InterfaceAddress> getInterfaceAddresses()
    Returns a List of the InterfaceAddresses for this network interface.
    int getMTU()
    Returns the Maximum Transmission Unit (MTU) of this interface.
    String getName()
    Returns the name of this network interface (such as "eth0" or "lo").
    static Enumeration<NetworkInterface> getNetworkInterfaces()
    Gets a list of all network interfaces available on the local system or null if no interface is available.
    NetworkInterface getParent()
    Returns the parent NetworkInterface of this interface if this is a sub-interface, or null if it's a physical (non virtual) interface.
    Enumeration<NetworkInterface> getSubInterfaces()
    Returns an enumeration of all the sub-interfaces of this network interface.
    int hashCode()
    Returns the hash code for this NetworkInterface.
    boolean isLoopback()
    Returns true if this network interface is a loopback interface.
    boolean isPointToPoint()
    Returns true if this network interface is a point-to-point interface.
    boolean isUp()
    Returns true if this network interface is up.
    boolean isVirtual()
    Returns true if this interface is a virtual interface (also called a sub-interface).
    boolean supportsMulticast()
    Returns true if this network interface supports multicast.
    String toString()
    Returns a string containing details of this network interface.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Method Details

    • getIndex

      public int getIndex()
      Returns the index for the network interface, or -1 if unknown.
      Since:
      1.7
    • getName

      public String getName()
      Returns the name of this network interface (such as "eth0" or "lo").
    • getInetAddresses

      public Enumeration<InetAddress> getInetAddresses()
      Returns an enumeration of the addresses bound to this network interface.
    • getDisplayName

      public String getDisplayName()
      Returns a human-readable name for this network interface. On Android, this is the same string as returned by getName().
    • getByName

      public static NetworkInterface getByName​(String interfaceName) throws SocketException
      Returns the NetworkInterface corresponding to the named network interface, or null if no interface has this name.
      Throws:
      SocketException - if an error occurs.
      NullPointerException - if interfaceName == null.
    • getByInetAddress

      public static NetworkInterface getByInetAddress​(InetAddress address) throws SocketException
      Returns the NetworkInterface corresponding to the given address, or null if no interface has this address.
      Throws:
      SocketException - if an error occurs.
      NullPointerException - if address == null.
    • getByIndex

      public static NetworkInterface getByIndex​(int index) throws SocketException
      Returns the NetworkInterface corresponding to the given interface index, or null if no interface has this index.
      Throws:
      SocketException - if an error occurs.
      Since:
      1.7
    • getNetworkInterfaces

      public static Enumeration<NetworkInterface> getNetworkInterfaces() throws SocketException
      Gets a list of all network interfaces available on the local system or null if no interface is available.
      Returns:
      the list of NetworkInterface instances representing the available interfaces.
      Throws:
      SocketException - if an error occurs while getting the network interface information.
    • equals

      public boolean equals​(Object obj)
      Compares the specified object to this NetworkInterface and returns whether they are equal or not. The object must be an instance of NetworkInterface with the same name, display name, and list of interface addresses.
      Overrides:
      equals in class Object
      Parameters:
      obj - the object to compare with this instance.
      Returns:
      true if the specified object is equal to this NetworkInterface, false otherwise.
      See Also:
      hashCode()
    • hashCode

      public int hashCode()
      Returns the hash code for this NetworkInterface. Since the name should be unique for each network interface the hash code is generated using the name.
      Overrides:
      hashCode in class Object
      Returns:
      this object's hash code.
      See Also:
      Object.equals(java.lang.Object)
    • toString

      public String toString()
      Returns a string containing details of this network interface. The exact format is deliberately unspecified. Callers that require a specific format should build a string themselves, using this class' accessor methods.
      Overrides:
      toString in class Object
      Returns:
      a printable representation of this object.
    • getInterfaceAddresses

      public List<InterfaceAddress> getInterfaceAddresses()
      Returns a List of the InterfaceAddresses for this network interface.
      Since:
      1.6
    • getSubInterfaces

      public Enumeration<NetworkInterface> getSubInterfaces()
      Returns an enumeration of all the sub-interfaces of this network interface. Sub-interfaces are also known as virtual interfaces.

      For example, eth0:1 would be a sub-interface of eth0.

      Returns:
      an Enumeration of all the sub-interfaces of this network interface
      Since:
      1.6
    • getParent

      public NetworkInterface getParent()
      Returns the parent NetworkInterface of this interface if this is a sub-interface, or null if it's a physical (non virtual) interface.
      Returns:
      the NetworkInterface this interface is attached to.
      Since:
      1.6
    • isUp

      public boolean isUp() throws SocketException
      Returns true if this network interface is up.
      Returns:
      true if the interface is up.
      Throws:
      SocketException - if an I/O error occurs.
      Since:
      1.6
    • isLoopback

      public boolean isLoopback() throws SocketException
      Returns true if this network interface is a loopback interface.
      Returns:
      true if the interface is a loopback interface.
      Throws:
      SocketException - if an I/O error occurs.
      Since:
      1.6
    • isPointToPoint

      public boolean isPointToPoint() throws SocketException
      Returns true if this network interface is a point-to-point interface. (For example, a PPP connection using a modem.)
      Returns:
      true if the interface is point-to-point.
      Throws:
      SocketException - if an I/O error occurs.
      Since:
      1.6
    • supportsMulticast

      public boolean supportsMulticast() throws SocketException
      Returns true if this network interface supports multicast.
      Throws:
      SocketException - if an I/O error occurs.
      Since:
      1.6
    • getHardwareAddress

      public byte[] getHardwareAddress() throws SocketException
      Returns the hardware address of the interface, if it has one, or null otherwise.
      Throws:
      SocketException - if an I/O error occurs.
      Since:
      1.6
    • getMTU

      public int getMTU() throws SocketException
      Returns the Maximum Transmission Unit (MTU) of this interface.
      Returns:
      the value of the MTU for the interface.
      Throws:
      SocketException - if an I/O error occurs.
      Since:
      1.6
    • isVirtual

      public boolean isVirtual()
      Returns true if this interface is a virtual interface (also called a sub-interface). Virtual interfaces are, on some systems, interfaces created as a child of a physical interface and given different settings (like address or MTU). Usually the name of the interface will the name of the parent followed by a colon (:) and a number identifying the child, since there can be several virtual interfaces attached to a single physical interface.
      Returns:
      true if this interface is a virtual interface.
      Since:
      1.6