Я пытаюсь выполнить обратный поиск для всех внутренних 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 параллельно для потоков и затем объединить их в один файл?
Также, если у вас есть лучший подход к решению этой проблемы, пожалуйста, дайте мне знать.