批量反向查找

时间:2018-06-06 03:59:04

标签: python multithreading python-3.x export-to-csv reverse-dns

我正在尝试对所有内部IP地址进行反向查找,以验证我拥有的库存。我希望通过Python来做到这一点。 我正在考虑使用以下代码生成包含所有内部IP地址的csv文件 -

import ipaddress as ip
import pandas as pd

file_name='10Dot.csv'

a = ip.ip_network('10.0.0.0/8')
ip_list = []
for x in a.hosts():
    ip_list.append(x.compressed)

df=pd.DataFrame({'IP_Address':ip_list})
df.to_csv(file_name, encoding='utf-8', index=False)

end = time.time()
print(end - start)

同样,我想为其他内部网络生成文件。然后使用以下函数,我试图通过生成的文件中的每一行来进行反向查找 -

def reverse_lookup(host):
    try:
        lookup=socket.gethostbyaddr(str(host))[0]
    except:
        lookup="NA"
    return lookup    

如果我逐行读取csv文件,则通过所有IP地址的速度非常慢。我正在尝试使用多线程来挑选CSV文件的块并逐行执行上述功能。因此,对于10.0.0.0/8网络,我在文件中有16,777,214行,我正在考虑将其分成100个部分,并生成一个带有主机和查找值的最终文件。 如何并行读取线程的csv文件,然后将它们组合成一个文件?

如果你有更好的方法来解决这个问题,请告诉我。

0 个答案:

没有答案