Задача #1650
Компьютерные сети
(М. Ишимов) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Сеть, в которой содержится узел с IP-адресом , задана маской сети 255.255.255.240, где - некоторое допустимое для записи IP-адреса число. Определите максимальное значение , для которого для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество нулей в левых двух байтах не больше суммарного количества нулей в правых двух байтах.
В ответе укажите только число.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
224
from ipaddress import *
mask = ip_address('255.255.255.240')
for A in range(256):
ip = ip_address(f'248.112.{A}.35')
network = ip_network(f'{ip}/{mask}', 0)
if ip not in [network.network_address, network.broadcast_address]:
if all( f'{ip:b}'[:16].count('0') <= f'{ip:b}'[16:].count('0')
for ip in network):
print(A)