IPv6日志适配

This commit is contained in:
user123456
2025-06-17 18:49:34 +08:00
parent 182dced403
commit 29ceeef45b

View File

@@ -250,15 +250,22 @@ func RateLimitMiddleware(limiter *IPRateLimiter) gin.HandlerFunc {
ip = c.ClientIP() ip = c.ClientIP()
} }
// 提取纯IP地址去除端口 // 提取纯IP地址去除可能存在的端口)
cleanIP := extractIPFromAddress(ip) cleanIP := extractIPFromAddress(ip)
// 日志记录请求IP和头信息 // 日志记录请求IP和头信息
fmt.Printf("请求IP: %s (去除端口后: %s), X-Forwarded-For: %s, X-Real-IP: %s\n", normalizedIP := normalizeIPForRateLimit(cleanIP)
ip, if cleanIP != normalizedIP {
cleanIP, fmt.Printf("请求IP: %s (提纯后: %s, 限流段: %s), X-Forwarded-For: %s, X-Real-IP: %s\n",
c.GetHeader("X-Forwarded-For"), ip, cleanIP, normalizedIP,
c.GetHeader("X-Real-IP")) 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) ipLimiter, allowed := limiter.GetLimiter(cleanIP)