Массовый обратный поиск - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь выполнить обратный поиск для всех внутренних IP-адресов, чтобы проверить инвентарь, который у меня есть.Я хочу сделать это через Python.Я подумываю создать файл csv со всеми внутренними IP-адресами, используя следующий код:

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 параллельно для потоков и затем объединить их в один файл?

Также, если у вас есть лучший подход к решению этой проблемы, пожалуйста, дайте мне знать.

...