From 29ceeef45b24cf8dbe19ed9359a1e2a340ae6d12 Mon Sep 17 00:00:00 2001 From: user123456 Date: Tue, 17 Jun 2025 18:49:34 +0800 Subject: [PATCH] =?UTF-8?q?IPv6=E6=97=A5=E5=BF=97=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ratelimiter.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/ratelimiter.go b/src/ratelimiter.go index 2c2a4c1..3d302ec 100644 --- a/src/ratelimiter.go +++ b/src/ratelimiter.go @@ -250,15 +250,22 @@ func RateLimitMiddleware(limiter *IPRateLimiter) gin.HandlerFunc { ip = c.ClientIP() } - // 提取纯IP地址(去除端口号) + // 提取纯IP地址(去除可能存在的端口) cleanIP := extractIPFromAddress(ip) // 日志记录请求IP和头信息 - fmt.Printf("请求IP: %s (去除端口后: %s), X-Forwarded-For: %s, X-Real-IP: %s\n", - ip, - cleanIP, - c.GetHeader("X-Forwarded-For"), - c.GetHeader("X-Real-IP")) + normalizedIP := normalizeIPForRateLimit(cleanIP) + if cleanIP != normalizedIP { + fmt.Printf("请求IP: %s (提纯后: %s, 限流段: %s), X-Forwarded-For: %s, X-Real-IP: %s\n", + ip, cleanIP, normalizedIP, + c.GetHeader("X-Forwarded-For"), + c.GetHeader("X-Real-IP")) + } else { + fmt.Printf("请求IP: %s (提纯后: %s), X-Forwarded-For: %s, X-Real-IP: %s\n", + ip, cleanIP, + c.GetHeader("X-Forwarded-For"), + c.GetHeader("X-Real-IP")) + } // 获取限流器并检查是否允许访问 ipLimiter, allowed := limiter.GetLimiter(cleanIP)