IP白名单优化

This commit is contained in:
user123456
2025-07-27 08:01:34 +08:00
parent dd704dc499
commit 506de49586

View File

@@ -25,6 +25,7 @@ type IPRateLimiter struct {
b int b int
whitelist []*net.IPNet whitelist []*net.IPNet
blacklist []*net.IPNet blacklist []*net.IPNet
whitelistLimiter *rate.Limiter // 全局共享的白名单限流器
} }
// rateLimiterEntry 限流器条目 // rateLimiterEntry 限流器条目
@@ -81,6 +82,7 @@ func InitGlobalLimiter() *IPRateLimiter {
b: burstSize, b: burstSize,
whitelist: whitelist, whitelist: whitelist,
blacklist: blacklist, blacklist: blacklist,
whitelistLimiter: rate.NewLimiter(rate.Inf, burstSize),
} }
go limiter.cleanupRoutine() go limiter.cleanupRoutine()
@@ -170,7 +172,7 @@ func (i *IPRateLimiter) GetLimiter(ip string) (*rate.Limiter, bool) {
} }
if isIPInCIDRList(cleanIP, i.whitelist) { if isIPInCIDRList(cleanIP, i.whitelist) {
return rate.NewLimiter(rate.Inf, i.b), true return i.whitelistLimiter, true
} }
normalizedIP := normalizeIPForRateLimit(cleanIP) normalizedIP := normalizeIPForRateLimit(cleanIP)