Проверьте, принадлежит ли ip-адрес подсети в python3

#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. Ну, нет. но спасибо за идею, я забыл, что может быть случай, некоторые сети могут быть включены в другие. Спасибо!