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