From e3d2266a34944e50f6ab03243d746c412343a7ca Mon Sep 17 00:00:00 2001 From: Sazonov Andrey Date: Wed, 25 Mar 2026 16:51:23 +0300 Subject: [PATCH] fixik --- redirector.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/redirector.py b/redirector.py index 20429f2..9abd15d 100644 --- a/redirector.py +++ b/redirector.py @@ -145,13 +145,20 @@ def is_public_ip(ip_str): return False -async def resolve_domain(domain, resolver, semaphore): +async def resolve_domain(domain, dns_name, server, semaphore): async with semaphore: + resolver = dns.asyncresolver.Resolver() + resolver.nameservers = [server] + resolver.lifetime = 5 + try: answer = await resolver.resolve(domain) return [r.address for r in answer] + except Exception as e: - logging.warning(f"DNS ошибка {domain}: {e}") + logging.warning( + f"DNS ошибка [{dns_name} | {server}] {domain}: {e}" + ) return [] @@ -191,12 +198,12 @@ async def main(): tasks = [] - for _, servers in resolvers: - resolver = dns.asyncresolver.Resolver() - resolver.nameservers = servers - - for domain in domains: - tasks.append(resolve_domain(domain, resolver, semaphore)) + for dns_name, servers in resolvers: + for server in servers: + for domain in domains: + tasks.append( + resolve_domain(domain, dns_name, server, semaphore) + ) results = await asyncio.gather(*tasks)