From 55d9bb860208e408e9f0790fb217ff0311dd48b4 Mon Sep 17 00:00:00 2001 From: bwcx_jzy Date: Sun, 26 Jun 2022 19:50:23 +0800 Subject: [PATCH] =?UTF-8?q?localAddressList=20=E6=B7=BB=E5=8A=A0=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/core/net/NetUtil.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java b/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java index e08b9212c..1877191fb 100755 --- a/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java @@ -429,6 +429,17 @@ public class NetUtil { * @since 4.5.17 */ public static LinkedHashSet localAddressList(Filter addressFilter) { + return localAddressList(null, addressFilter); + } + + /** + * 获取所有满足过滤条件的本地IP地址对象 + * + * @param addressFilter 过滤器,null表示不过滤,获取所有地址 + * @param networkInterfaceFilter 过滤器,null表示不过滤,获取所有网卡 + * @return 过滤后的地址对象列表 + */ + public static LinkedHashSet localAddressList(Filter networkInterfaceFilter, Filter addressFilter) { Enumeration networkInterfaces; try { networkInterfaces = NetworkInterface.getNetworkInterfaces(); @@ -444,6 +455,9 @@ public class NetUtil { while (networkInterfaces.hasMoreElements()) { final NetworkInterface networkInterface = networkInterfaces.nextElement(); + if (networkInterfaceFilter != null && false == networkInterfaceFilter.accept(networkInterface)) { + continue; + } final Enumeration inetAddresses = networkInterface.getInetAddresses(); while (inetAddresses.hasMoreElements()) { final InetAddress inetAddress = inetAddresses.nextElement();