diff options
Diffstat (limited to 'src/main/java/derms/net/Net.java')
| -rw-r--r-- | src/main/java/derms/net/Net.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/derms/net/Net.java b/src/main/java/derms/net/Net.java new file mode 100644 index 0000000..f2eb1fd --- /dev/null +++ b/src/main/java/derms/net/Net.java @@ -0,0 +1,19 @@ +package derms.net; + +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; +import java.util.NoSuchElementException; + +public class Net { + /** Return the first non-loopback multicast interface in the system, or throw exception if no such interface exists. */ + public static NetworkInterface getMulticastInterface() throws SocketException, NoSuchElementException { + Enumeration<NetworkInterface> ifss = NetworkInterface.getNetworkInterfaces(); + while (ifss.hasMoreElements()) { + NetworkInterface ifs = ifss.nextElement(); + if (ifs.supportsMulticast() && !ifs.isLoopback() && ifs.isUp()) + return ifs; + } + throw new NoSuchElementException("no multicast interface available"); + } +} |