【发布时间】:2015-09-27 18:53:52
【问题描述】:
我计划在 4700 万个 ips 上运行反向 DNS。这是我的代码
with open(file,'r') as f:
with open ('./ip_ptr_new.txt','a') as w:
for l in f:
la = l.rstrip('\n')
ip,countdomain = la.split('|')
ips.append(ip)
try:
ais = socket.gethostbyaddr(ip)
print ("%s|%s|%s" % (ip,ais[0],countdomain), file = w)
except:
print ("%s|%s|%s" % (ip,"None",countdomain), file = w)
目前它非常慢。有人对加快速度有什么建议吗?
【问题讨论】:
-
运行多个线程/进程
-
@matino 我的机器只有两个 cpu。并且使用 python 多处理模块两个不会加快速度。你能详细说明一下吗?
-
拥有 2 个 CPU 并不意味着一次只能运行 2 个进程。尝试运行更多 - 此代码不太可能受 CPU 限制。
-
你可以使用 2 个进程,每个进程产生多个线程,每个线程 1) 只读取文件的一部分 2) 因为该部分正在查找主机
-
@matino 谢谢。如果你能单独写下答案,那对我真的很有帮助。
标签: python dns reverse reverse-dns