#python-3.x #ip #subnet
#python-3.x #ip #подсеть
Вопрос:
Я пытаюсь проверить, принадлежит ли список ip-адресов (список, называемый ip-адресами) списку подсетей (список, называемый подсетями). Если один ip-адрес из ip-адресов принадлежит подсети из подсетей, он считается отсканированным. Моя цель-найти не отсканированные подсети. Я написал этот небольшой скрипт, который, кажется, работает, но фактический результат не точен. Что я имею в виду, говоря это: он точно анализирует подсети из файла (всего 100 подсетей), но после выполнения, похоже, не хватает некоторых результатов, потому что в итоге всего 97 подсетей. Любая помощь будет оценена по достоинству.
Данные выглядят так:
ip adresses: 172.0.0.1 172.0.0.2 etc subnets: 172.0.0.1/24 186.0.0.1/30 etc
фрагмент кода:
print(len(subnets)) #returns 100 for ip in ips: for subnet in subnets: if(ip in subnet): scanned.append(subnet) scanned = list(set(scanned)) notscanned = [x for x in subnets if x not in scanned] print(len(scanned notscanned)) #returns 97
Комментарии:
1. Пожалуйста, предоставьте образец ваших данных, который можно скопировать и вставить
2. @JanWilamowski Привет, Ян
3. есть ли у вас дубликаты записей в ваших подсетях?
4. Ну, нет. но спасибо за идею, я забыл, что может быть случай, некоторые сети могут быть включены в другие. Спасибо!