Prechádzať zdrojové kódy

【优化】IP获取逻辑优化,优先遍历网卡来获取可用IP;

xuxueli 9 mesiacov pred
rodič
commit
e70ca1b704

+ 4 - 3
doc/XXL-JOB官方文档.md

@@ -2440,9 +2440,10 @@ public void execute() {
 - c、下个大版本(v3.0)将会基于 jdk17 与 springboot3.x 构建;
 
 ### 7.37 版本 v3.0.0 Release Notes[规划中]
-- 1、调度中心升级至 SpringBoot3 + JDK17;
-- 2、Docker镜像升级,镜像构建基于JDK17(openjdk:17-jdk-slim);
-- 3、[规划中]登陆态Token生成逻辑优化,混淆登陆时间属性,降低token泄漏风险;
+- 1、【升级】调度中心升级至 SpringBoot3 + JDK17;
+- 2、【升级】Docker镜像升级,镜像构建基于JDK17(openjdk:17-jdk-slim);
+- 3、【优化】IP获取逻辑优化,优先遍历网卡来获取可用IP;
+- 4、[规划中]登陆态Token生成逻辑优化,混淆登陆时间属性,降低token泄漏风险;
 
 
 ### TODO LIST

+ 13 - 10
xxl-job-core/src/main/java/com/xxl/job/core/util/IpUtil.java

@@ -98,16 +98,7 @@ public class IpUtil {
 
     private static InetAddress getLocalAddress0() {
         InetAddress localAddress = null;
-        try {
-            localAddress = InetAddress.getLocalHost();
-            InetAddress addressItem = toValidAddress(localAddress);
-            if (addressItem != null) {
-                return addressItem;
-            }
-        } catch (Throwable e) {
-            logger.error(e.getMessage(), e);
-        }
-
+        // 1、prefer filter NetworkInterface
         try {
             Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
             if (null == interfaces) {
@@ -143,6 +134,18 @@ public class IpUtil {
         } catch (Throwable e) {
             logger.error(e.getMessage(), e);
         }
+
+        // 2、getLocalAddress
+        try {
+            localAddress = InetAddress.getLocalHost();
+            InetAddress addressItem = toValidAddress(localAddress);
+            if (addressItem != null) {
+                return addressItem;
+            }
+        } catch (Throwable e) {
+            logger.error(e.getMessage(), e);
+        }
+
         return localAddress;
     }