Задача #3167
Компьютерные сети
(А. Ходарин) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом 95.24.16.0 и маской сети 255.255.240.0. Определите сумму третьего и четвёртого октетов наибольшего IP-адреса узла, в котором количество единиц в двоичной записи максимально.
Например, если бы найденный адрес был равен 111.22.3.44, то в ответе следовало бы записать 47.
Решение
Ответ
from ipaddress import *
net = ip_network('95.24.16.0/255.255.240.0')
res = []
for ip in net.hosts():
ip2 = f'{ip:b}'
res.append([ip2.count('1'), ip])
print(max(res))