From d615fc515fc52d6ed970c11d59a017e48de4be32 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 16 Jun 2026 16:43:58 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/utils/ip/IpUtils.java |   25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/nq/utils/ip/IpUtils.java b/src/main/java/com/nq/utils/ip/IpUtils.java
index 031206a..900fb71 100644
--- a/src/main/java/com/nq/utils/ip/IpUtils.java
+++ b/src/main/java/com/nq/utils/ip/IpUtils.java
@@ -10,20 +10,33 @@
             return "";
         }
 
-        String ip = request.getHeader("X-real-ip");
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        String ip = request.getHeader("X-Real-IP");
+        if (isBlankIp(ip)) {
+            ip = request.getHeader("X-real-ip");
+        }
+        if (isBlankIp(ip)) {
             ip = request.getHeader("x-forwarded-for");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (isBlankIp(ip)) {
             ip = request.getHeader("Proxy-Client-IP");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (isBlankIp(ip)) {
             ip = request.getHeader("WL-Proxy-Client-IP");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (isBlankIp(ip)) {
             ip = request.getRemoteAddr();
         }
-        return ip;
+        if (ip != null && ip.contains(",")) {
+            ip = ip.split(",")[0].trim();
+        }
+        if ("0:0:0:0:0:0:0:1".equals(ip) || "::1".equals(ip)) {
+            ip = "127.0.0.1";
+        }
+        return ip == null ? "" : ip.trim();
+    }
+
+    private static boolean isBlankIp(String ip) {
+        return ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip);
     }
 }
 

--
Gitblit v1.9.3