В терминологии сетей TCP/IP маска сети — это двоичное число,
Например, если IP-адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.
Узлы с IP-адресами 84.77.47.132 и 84.77.48.132 находятся в одной сети. Укажите наибольшее возможное значение третьего слева байта маски этой сети. Ответ запишите в виде десятичного числа.
Рассмотрим третий байт IP-адреса и адреса сети в двоичной системе счисления:
4710 = 0010 11112,
4810 = 0011 00002.
Откуда ясно, что три первых слева бита маски — единицы, остальные — нули. То есть третий байт маски равен 1110 00002 = 22410.
Ответ: 224.
Примечание. В маске после нуля идут только одни нули.
Приведём решение Ильи Андрианова на языке Python.
from ipaddress import *
R = []
for mask in range(32+1):
net1 = ip_network(f'84.77.47.132/{mask}', 0)
net2 = ip_network(f'84.77.48.132/{mask}', 0)
if net1 == net2:
R.append(str(net1.netmask).split('.')[2])
print(max(R))

