## Uses of Class
java.net.NetworkInterface

- Packages that use NetworkInterface
  Package | Description
  --- | ---
  java.net | Provides the classes for implementing networking applications.
  java.nio.channels | Defines channels, which represent connections to entities that are capable of performing I/O operations, such as files and sockets; defines selectors, for multiplexed, non-blocking I/O operations.

- - ### Uses of NetworkInterface in java.net

    Fields in java.net with type parameters of type NetworkInterface
    Modifier and Type | Field | Description
    --- | --- | ---
    `static SocketOption<NetworkInterface>` | StandardSocketOptions.`IP_MULTICAST_IF` | The network interface for Internet Protocol (IP) multicast datagrams.

    Methods in java.net that return NetworkInterface
    Modifier and Type | Method | Description
    --- | --- | ---
    `static NetworkInterface` | NetworkInterface.`getByIndex​(int index)` | Get a network interface given its index.
    `static NetworkInterface` | NetworkInterface.`getByInetAddress​(InetAddress addr)` | Convenience method to search for a network interface that has the specified Internet Protocol (IP) address bound to it.
    `static NetworkInterface` | NetworkInterface.`getByName​(String name)` | Searches for the network interface with the specified name.
    `NetworkInterface` | MulticastSocket.`getNetworkInterface()` | Get the multicast network interface set.
    `NetworkInterface` | NetworkInterface.`getParent()` | Returns the parent NetworkInterface of this interface if this is a subinterface, or `null` if it is a physical (non virtual) interface or has no parent.
    `NetworkInterface` | Inet6Address.`getScopedInterface()` | Returns the scoped interface, if this instance was created with a scoped interface.

    Methods in java.net that return types with arguments of type NetworkInterface
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Enumeration<NetworkInterface>` | NetworkInterface.`getNetworkInterfaces()` | Returns an `Enumeration` of all the interfaces on this machine.
    `Enumeration<NetworkInterface>` | NetworkInterface.`getSubInterfaces()` | Get an Enumeration with all the subinterfaces (also known as virtual interfaces) attached to this network interface.
    `static Stream<NetworkInterface>` | NetworkInterface.`networkInterfaces()` | Returns a `Stream` of all the interfaces on this machine.
    `Stream<NetworkInterface>` | NetworkInterface.`subInterfaces()` | Get a Stream of all subinterfaces (also known as virtual interfaces) attached to this network interface.

    Methods in java.net with parameters of type NetworkInterface
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Inet6Address` | Inet6Address.`getByAddress​(String host, byte[] addr, NetworkInterface nif)` | Create an Inet6Address in the exact manner of `InetAddress.getByAddress(String,byte[])` except that the IPv6 scope_id is set to the value corresponding to the given interface for the address type specified in `addr`.
    `boolean` | InetAddress.`isReachable​(NetworkInterface netif, int ttl, int timeout)` | Test whether that address is reachable.
    `protected abstract void` | DatagramSocketImpl.`joinGroup​(SocketAddress mcastaddr, NetworkInterface netIf)` | Join the multicast group.
    `void` | MulticastSocket.`joinGroup​(SocketAddress mcastaddr, NetworkInterface netIf)` | Joins the specified multicast group at the specified interface.
    `protected abstract void` | DatagramSocketImpl.`leaveGroup​(SocketAddress mcastaddr, NetworkInterface netIf)` | Leave the multicast group.
    `void` | MulticastSocket.`leaveGroup​(SocketAddress mcastaddr, NetworkInterface netIf)` | Leave a multicast group on a specified local interface.
    `void` | MulticastSocket.`setNetworkInterface​(NetworkInterface netIf)` | Specify the network interface for outgoing multicast datagrams sent on this socket.

  - ### Uses of NetworkInterface in java.nio.channels

    Methods in java.nio.channels that return NetworkInterface
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract NetworkInterface` | MembershipKey.`networkInterface()` | Returns the network interface for which this membership key was created.

    Methods in java.nio.channels with parameters of type NetworkInterface
    Modifier and Type | Method | Description
    --- | --- | ---
    `MembershipKey` | MulticastChannel.`join​(InetAddress group, NetworkInterface interf)` | Joins a multicast group to begin receiving all datagrams sent to the group, returning a membership key.
    `MembershipKey` | MulticastChannel.`join​(InetAddress group, NetworkInterface interf, InetAddress source)` | Joins a multicast group to begin receiving datagrams sent to the group from a given source address.