From 4eaf622c283424c3cfab60e19b1212f4909f7de5 Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Thu, 17 Apr 2025 18:03:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20linux=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../license/license/AbstractServerInfos.java | 29 +++++++++---------- .../license/license/LinuxServerInfos.java | 4 +-- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/wfc/common/license/license/AbstractServerInfos.java b/src/main/java/org/wfc/common/license/license/AbstractServerInfos.java index 44ea7fd..a0ff280 100644 --- a/src/main/java/org/wfc/common/license/license/AbstractServerInfos.java +++ b/src/main/java/org/wfc/common/license/license/AbstractServerInfos.java @@ -7,6 +7,7 @@ import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.ArrayList; +import java.util.Enumeration; import java.util.List; /** @@ -73,22 +74,18 @@ public abstract class AbstractServerInfos { List result = new ArrayList<>(4); // 遍历所有的网络接口 -// for (Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); networkInterfaces.hasMoreElements(); ) { -// NetworkInterface iface = (NetworkInterface) networkInterfaces.nextElement(); -// // 在所有的接口下再遍历IP -// for (Enumeration inetAddresses = iface.getInetAddresses(); inetAddresses.hasMoreElements(); ) { -// InetAddress inetAddr = (InetAddress) inetAddresses.nextElement(); -// -// //排除LoopbackAddress、SiteLocalAddress、LinkLocalAddress、MulticastAddress类型的IP地址 -// if (!inetAddr.isLoopbackAddress() /*&& !inetAddr.isSiteLocalAddress()*/ -// && !inetAddr.isLinkLocalAddress() && !inetAddr.isMulticastAddress()) { -// result.add(inetAddr); -// } -// } -// } - InetAddress[] inetAddressArr = InetAddress.getAllByName("host.docker.internal"); - for (InetAddress inetAddress : inetAddressArr) { - result.add(inetAddress); + for (Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); networkInterfaces.hasMoreElements(); ) { + NetworkInterface iface = (NetworkInterface) networkInterfaces.nextElement(); + // 在所有的接口下再遍历IP + for (Enumeration inetAddresses = iface.getInetAddresses(); inetAddresses.hasMoreElements(); ) { + InetAddress inetAddr = (InetAddress) inetAddresses.nextElement(); + + //排除LoopbackAddress、SiteLocalAddress、LinkLocalAddress、MulticastAddress类型的IP地址 + if (!inetAddr.isLoopbackAddress() /*&& !inetAddr.isSiteLocalAddress()*/ + && !inetAddr.isLinkLocalAddress() && !inetAddr.isMulticastAddress()) { + result.add(inetAddr); + } + } } return result; } diff --git a/src/main/java/org/wfc/common/license/license/LinuxServerInfos.java b/src/main/java/org/wfc/common/license/license/LinuxServerInfos.java index e316d66..e4be54d 100644 --- a/src/main/java/org/wfc/common/license/license/LinuxServerInfos.java +++ b/src/main/java/org/wfc/common/license/license/LinuxServerInfos.java @@ -48,7 +48,7 @@ public class LinuxServerInfos extends AbstractServerInfos { String serialNumber = ""; //使用dmidecode命令获取CPU序列号 - String[] shell = {"/bin/bash", "-c", "sudo dmidecode -t processor | grep 'ID' | awk -F ':' '{print $2}' | head -n 1"}; + String[] shell = {"/bin/bash", "-c", "dmidecode -t processor | grep 'ID' | awk -F ':' '{print $2}' | head -n 1"}; Process process = Runtime.getRuntime().exec(shell); process.getOutputStream().close(); @@ -69,7 +69,7 @@ public class LinuxServerInfos extends AbstractServerInfos { String serialNumber = ""; //使用dmidecode命令获取主板序列号 - String[] shell = {"/bin/bash", "-c", "sudo dmidecode | grep 'Serial Number' | awk -F ':' '{print $2}' | head -n 1"}; + String[] shell = {"/bin/bash", "-c", "dmidecode | grep 'Serial Number' | awk -F ':' '{print $2}' | head -n 1"}; Process process = Runtime.getRuntime().exec(shell); process.getOutputStream().close();