Источник: https://kpolyakov.spb.ru/
В терминологии сетей ТСР/IР маской сети называют двоичное число, которое показывает, какая часть IР-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IР-адресом 184.178.54.144 и маской сети 255.255.255.240. Сколько в этой сети IP-адресов, у которых в двоичной записи IP-адреса имеется сочетание трех подряд идущих единиц? В ответе укажите только число.
from ipaddress import *
c = 0
net = ip_network(’184.178.54.144/255.255.255.240’)
# Находим подсеть, для этого указываем IP-адрес и маску сети через /
for i in net: # Перебираем все IP-адреса в этой сети
t = bin(int(i))[2:] # Переводим IP-адрес в двоичную сс
if ’111’ in t: # Если есть такая комбинация,
c += 1 # то прибавляем единицу
print(c)
Ответ: 16