Задача #1657
Компьютерные сети
(М. Ишимов) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Сеть, в которой содержится узел с IP-адресом 223.167..167, задана маской сети 255.255.255.192, где - некоторое допустимое для записи IP-адреса число. Определите максимальное значение , для которого для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество нулей в левых двух байтах не больше суммарного количества нулей в правых двух байтах.
В ответе укажите только число.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
248
from ipaddress import *
mask = ip_address('255.255.255.192')
for A in range(256):
ip = ip_address(f'223.167.{A}.167')
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)