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