summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/net/Net.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/derms/net/Net.java')
-rw-r--r--src/main/java/derms/net/Net.java19
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");
+ }
+}