Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
Сеть, в которой содержится узел с IP-адресом 201.154.34.A, задана маской 255.255.255.224, где A — некоторое допустимое для записи IP-адреса число.
Определите количество значений A, для которых у всех узлов в этой сети в двоичной записи количество нулей в третьем байте больше, чем в четвертом.
В ответе укажите только число.
Правильный ответ:
120
from ipaddress import ip_network, ip_address
mask = '255.255.255.224'
count = 0
for A in range(256):
ip = ip_address(f'201.154.34.{A}')
net = ip_network(f'{ip}/{mask}', False)
if ip in net.hosts():
if all(
f'{int(ip):032b}'[16:24].count('0') >
f'{int(ip):032b}'[24:32].count('0')
for ip in net.hosts()
):
count += 1
print(count)
