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