Создание диапазона последовательных IP-адресов из текстового списка - PullRequest
0 голосов
/ 04 августа 2020

Я работаю над разработкой сценария Python, который будет выполнять присвоение имени хоста IP-адресу nslookup при предоставлении файла hosts.txt, который содержит список имен хостов в нашей сети. Конечная цель - получить файл «results.txt», который содержит IP-адреса по порядку и сокращенный до диапазона при наличии более одного последовательного адреса (например, 192.168.10.5, 192.168.10.6, 192.168.10.7 будет 192.168.10. 10.5-192.168.10.7) До сих пор мне удалось получить сценарий для выполнения nslookup и сортировки IP-адресов, но извлечение / создание диапазона оказывается трудным. Я надеюсь, что кто-то с большим опытом, чем мой собственный, сможет привести меня к правильному пути.

Текущий сценарий:

import sys
import socket

with open("host.txt") as f:
    sys.stdout = open("results.txt", "w")
    for line in map(str.rstrip, f):
        if line:  # skips empty lines
            try:
                ip_address=socket.gethostbyname(line)
                print (ip_address)
            except subprocess.CalledProcessError:
                pass
    sys.stdout.close()

with open("results.txt", "r") as infile:
    iplist = sorted([i.strip() for i in infile.readlines()], key = lambda x: int(''.join((lambda a:lambda v:a(a,v))(lambda s,x: x if len(x) == 3 else s(s, '0'+x))(i) for i in x.split('.'))))
with open("results.txt", "w") as outfile:
    outfile.write("\n".join(i for i in iplist))

Любые рекомендации или помощь будут очень благодарны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...