我对 python 完全陌生,老实说,我完全是编程。在 Google 的帮助下,我制作了我的第一个解析域列表的脚本,我猜有点运气。
域列表包含大约 100 000 个域,我必须优化完成此任务的时间,因为它会重复任务,现在大约需要两个小时才能完成。我可以拆分列表并分别运行每个脚本,但如果可以设置 2 个或更多 DNS 服务器并从它们并行解析,那就太好了。或者也许有更多的方法来优化运行时间?
我已经阅读了 dnspython 的文档,但是对于我的 python 技能水平(大约为 0)来说它太复杂了。
import socket
import dns.resolver
w = open ('/home/dalt/pyth/resolved.txt', "w")
x = open ('/home/dalt/pyth/not_resolved.txt', "w")
with open('/home/dalt/pyth/domains2.txt') as f:
my_list = [line.strip() for line in f.readlines()]
resolver = dns.resolver.Resolver()
resolver.nameservers=[socket.gethostbyname('212.xxx.xxx.134')]
for domain in my_list:
try:
q = resolver.query(domain, 'A')
for ipval in q:
print(ipval, file=w)
except dns.resolver.NXDOMAIN:
print(domain, 'NXDOMAIN', file=x)
except dns.resolver.NoNameservers:
print(domain, 'NoNameservers',file=x)
except dns.resolver.NoAnswer:
print(domain, 'NoAnswer',file=x)
except dns.name.BadEscape:
print(domain, 'BadEscape',file=x)
f.close()