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