Задание №13 — Маски подсети
В терминологии сетей ТСР/IP маской сети называется двоичное число, определяющее, какая часть IР-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IР-адрес, — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда — нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IР-адресу узла и маске.
Например, если IР-адрес узла равен 125.44.101.252, а маска равна 255.255.255.192, то адрес сети равен 125.44.101.192.
Для узла с IP-адресом 244.55.138.100 адрес сети равен 240.0.0.0. Чему равно максимально возможное значение первого (самого левого) байта маски? Ответ запишите в виде десятичного числа.
Правильный ответ
248
Пояснение
Решение:
IP-адрес 244.55.138.100, адрес сети 240.0.0.0. Уже первый байт изменился (), значит маска обрывается внутри первого байта, а остальные её байты нулевые.
Запишем первый байт: , в адресе сети . Маска должна сохранить четыре старших разряда и обнулить разряд со значением 4. Перебираем префиксные маски от больших к меньшим:
- : — не подходит;
- : — подходит (третий бит числа 244 нулевой).
Значения 254 и 255 тем более не подходят, так как они сохраняют разряд со значением 4. Наибольшее возможное значение первого байта маски равно 248 (маска 248.0.0.0).
for m in [255, 254, 252, 248, 240, 224, 192, 128, 0]:
if 244 & m == 240:
print(m) # 248
break
Ответ: 248