# dnsrecon-reduced/core/rate_limiter.py import time import redis class GlobalRateLimiter: def __init__(self, redis_client): self.redis = redis_client def is_rate_limited(self, key, limit, period): """ Check if a key is rate-limited. """ now = time.time() key = f"rate_limit:{key}" # Remove old timestamps self.redis.zremrangebyscore(key, 0, now - period) # Check the count count = self.redis.zcard(key) if count >= limit: return True # Add new timestamp self.redis.zadd(key, {now: now}) self.redis.expire(key, period) return False