ЕГЭ · ЗАДАНИЕ 10
IP-адреса и маски · №10149
Адрес узла — 220.128.112.142, адрес его сети — 220.128.96.0. Маска состоит из непрерывной цепочки единиц и следующих за ней нулей. Определите наибольшее значение третьего октета маски. Ответ — десятичное число.
Источник задания
Сначала попробуй решить самостоятельно, затем открой разбор. Для автоматической проверки ответа включи JavaScript.
Показать решение по шагам
Разбор решения
Ответ: 224
Проверяем все длины префикса от 0 до 32: IP & mask должен точно совпасть с заданным адресом сети. Подходят префиксы /19. Нули и единицы маски нельзя расставлять произвольно. Из подходящих масок выбираем именно величину, указанную в вопросе.
from ipaddress import ip_network
valid, third = [], []
for p in range(33):
net = ip_network('220.128.112.142/' + str(p), strict=False)
if str(net.network_address) == '220.128.96.0':
valid.append(p)
third.append(int(str(net.netmask).split('.')[2]))
print(max(third))