Задание №13 — Маски подсети
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом 208.95.48.0 и маской сети 255.255.240.0.
Определите максимальное количество нулей в двоичной записи IP-адреса в этой сети.
В ответе укажите только число.
Правильный ответ
21
Пояснение
Решение:
В маске 255.255.240.0 ровно единиц, значит первые 20 битов адреса фиксированы, а последние 12 свободны. Двоичная запись адреса сети: 11010000 01011111 00110000 00000000, в её фиксированной части 11010000010111110011 девять нулей.
Нулей будет как можно больше, если все 12 свободных битов тоже сделать нулями, то есть взять сам адрес сети 208.95.48.0. Итого нуль.
net = 208 * 256**3 + 95 * 256**2 + 48 * 256
host = 32 - 20
print(max(bin(net + k)[2:].zfill(32).count('0')
for k in range(2 ** host))) # 21
Ответ: 21