This commit is contained in:
Sazonov Andrey 2026-03-25 16:51:23 +03:00
parent b7ccbf7574
commit e3d2266a34

View File

@ -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)