python сравнивает диапазон ip с файлом хоста

У меня есть простой сценарий Python, который сравнивает диапазон с помощью netaddr с файлом хоста. Мне нужно распечатать весь диапазон и спички. Это, насколько я могу пойти. Фрагмент ниже:

ip_range = sys.argv[1]
host_file = open('/etc/hosts')
for ip in IPNetwork(ip_range).iter_hosts():
    ip_results.append('%s' % ip)

for Z in ip_results:
    for X in host_file:
        if Z in X:
            print Z, X

Что-то вроде этого:

192.168.1.1 192.168.1.1 host1

192.168.1.2 192.168.1.2 host2

192.168.1.3

Я хотел бы по-прежнему печатать IP, даже если нет совпадения. Будем очень благодарны любой помощи!

1 ответ

Решение

Простым решением было бы инициализировать переменную соответствия, а затем распечатать ip один раз, если он не включается. Например:

for Z in ip_results:
    matching = 0
    for X in host_file:
        if Z in X:
            print Z, X
            matching = 1
    if matching == 0:
        print Z
Другие вопросы по тегам