31 import java.security.AccessController; 32 import java.util.Spliterator; 33 import java.util.Spliterators; 34 import java.util.stream.Stream; 35 import java.util.stream.StreamSupport; 36 37 /** 38 * This class represents a Network Interface made up of a name, 39 * and a list of IP addresses assigned to this interface. 40 * It is used to identify the local interface on which a multicast group 41 * is joined. 42 * 43 * Interfaces are normally known by names such as "le0". 44 * 45 * @since 1.4 46 */ 47 public final class NetworkInterface { 48 private String name; 49 private String displayName; 50 private int index; 51 private InetAddress addrs[]; 52 private InterfaceAddress bindings[]; 53 private NetworkInterface childs[]; 54 private NetworkInterface parent = null; 55 private boolean virtual = false; 56 private static final NetworkInterface defaultInterface; 57 private static final int defaultIndex; /* index of defaultInterface */ 58 59 static { 60 AccessController.doPrivileged( 61 new java.security.PrivilegedAction<>() { 62 public Void run() { 63 System.loadLibrary("net"); 64 return null; 65 } 66 }); 67 68 init(); 69 defaultInterface = DefaultInterface.getDefault(); 70 if (defaultInterface != null) { 71 defaultIndex = defaultInterface.getIndex(); 72 } else { 73 defaultIndex = 0; | 31 import java.security.AccessController; 32 import java.util.Spliterator; 33 import java.util.Spliterators; 34 import java.util.stream.Stream; 35 import java.util.stream.StreamSupport; 36 37 /** 38 * This class represents a Network Interface made up of a name, 39 * and a list of IP addresses assigned to this interface. 40 * It is used to identify the local interface on which a multicast group 41 * is joined. 42 * 43 * Interfaces are normally known by names such as "le0". 44 * 45 * @since 1.4 46 */ 47 public final class NetworkInterface { 48 private String name; 49 private String displayName; 50 private int index; 51 private InetAddress[] addrs; 52 private InterfaceAddress[] bindings; 53 private NetworkInterface[] childs; 54 private NetworkInterface parent = null; 55 private boolean virtual = false; 56 private static final NetworkInterface defaultInterface; 57 private static final int defaultIndex; /* index of defaultInterface */ 58 59 static { 60 AccessController.doPrivileged( 61 new java.security.PrivilegedAction<>() { 62 public Void run() { 63 System.loadLibrary("net"); 64 return null; 65 } 66 }); 67 68 init(); 69 defaultInterface = DefaultInterface.getDefault(); 70 if (defaultInterface != null) { 71 defaultIndex = defaultInterface.getIndex(); 72 } else { 73 defaultIndex = 0; |