From a5052cc917f078d06d755b0212642e1bc4f7d391 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Mon, 3 Oct 2016 20:51:06 +0200 Subject: [PATCH] Added helper method to get local IP addresses --- src/zutil/net/InetScanner.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/zutil/net/InetScanner.java b/src/zutil/net/InetScanner.java index dc952f4..98df673 100755 --- a/src/zutil/net/InetScanner.java +++ b/src/zutil/net/InetScanner.java @@ -4,7 +4,14 @@ import zutil.osal.MultiCommandExecutor; import zutil.osal.OSAbstractionLayer; import java.io.*; +import java.net.Inet4Address; import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Enumeration; +import java.util.List; /** * This class is a IPv4 scanner, it will scan a @@ -103,9 +110,30 @@ public class InetScanner { return line.contains("TTL=") || line.contains("ttl="); } + /** + * @return a list of IPv4 addresses for the all local network cards + */ + public static List getLocalInet4Address(){ + ArrayList ips = new ArrayList<>(); + try { + Enumeration netIntf = NetworkInterface.getNetworkInterfaces(); + while(netIntf.hasMoreElements()){ + Enumeration addresses = netIntf.nextElement().getInetAddresses(); + while (addresses.hasMoreElements()){ + InetAddress ip = addresses.nextElement(); + if (ip instanceof Inet4Address && ip.isSiteLocalAddress()) + ips.add(ip); + } + } + } catch (SocketException e) { + e.printStackTrace(); + } + return ips; + } public interface InetScanListener { void foundInetAddress(InetAddress ip); } + }