Задача #3469

Компьютерные сети

Уровень ЕГЭ

(Р. Косов) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.
Широковещательным адресом называется специализированный адрес, в котором на месте нулей в маске стоят единицы. Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств.
Сеть задана IP-адресом одного из входящих в неё узлов 192.168.12.207 и сетевой маской 255.192.0.0.
Найдите наибольший в данной сети IP-адрес, в котором одинаковое количество нулей и единиц в двоичной записи. В ответе укажите найденный IP-адрес без пробелов и разделителей
Например, если бы найденный адрес был равен 100.10.3.4, то в ответе следовало бы записать 1001034

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

1921912540
from ipaddress import *

address = '192.168.12.207'
mask = '255.192.0.0'
net = ip_network(f'{address}/{mask}',0)
res = []
for ip in net:
dv = bin(int(ip))[2:].zfill(32)
if dv.count('1') == dv.count('0'):
res.append(ip)

print(res[-1])
Быстрый переход
Перейти к задаче