From 0c6f62e31e261e01ee26ce509f9547e357c979b5 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Thu, 10 Aug 2017 11:54:36 +0200 Subject: [PATCH] [New] Added NetworkHelper.findInet4Addresses() --- .../strolch/utils/helper/NetworkHelper.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 li.strolch.utils/src/main/java/li/strolch/utils/helper/NetworkHelper.java diff --git a/li.strolch.utils/src/main/java/li/strolch/utils/helper/NetworkHelper.java b/li.strolch.utils/src/main/java/li/strolch/utils/helper/NetworkHelper.java new file mode 100644 index 000000000..54eb033c2 --- /dev/null +++ b/li.strolch.utils/src/main/java/li/strolch/utils/helper/NetworkHelper.java @@ -0,0 +1,45 @@ +package li.strolch.utils.helper; + +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; + +public class NetworkHelper { + + public static List findInet4Addresses() throws SocketException { + + List inet4Addresses = new ArrayList<>(); + + Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); + while (interfaces.hasMoreElements()) { + NetworkInterface ni = interfaces.nextElement(); + + if (ni.isLoopback() || ni.isPointToPoint() || ni.isVirtual()) + continue; + + Enumeration inetAddresses = ni.getInetAddresses(); + while (inetAddresses.hasMoreElements()) { + InetAddress ia = inetAddresses.nextElement(); + + if (ia instanceof Inet4Address) + inet4Addresses.add((Inet4Address) ia); + } + } + + return inet4Addresses; + } + + public static String formatMacAddress(byte[] bytes) { + StringBuilder sb = new StringBuilder(17); + for (byte b : bytes) { + if (sb.length() > 0) + sb.append(':'); + sb.append(String.format("%02x", b)); + } + return sb.toString(); + } +}