Задание 10 ЕГЭ: адреса узлов сети с условием
Адреса узлов сети с условием на запись. Тема номера — ip-адрес и маска сети. Ниже — пример с ответом и решением; кнопкой под ним можно решить такую же задачу с другими числами, ответ проверится сразу.
Пример
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается поразрядной конъюнкцией IP-адреса узла и маски.
Сеть задана IP-адресом одного из её узлов 209.13.237.203 и маской 255.255.192.0. Сколько в этой сети IP-адресов, количество единиц в двоичной записи которых кратно 4? Адрес сети и широковещательный адрес (все биты адреса узла — единицы) узлам не присваиваются и не учитываются.
В ответе укажите только число.
Ответ
4160Решение
Маска 255.255.192.0 — это 18 единиц, на адрес узла остаётся 14 бит: в сети 16384 адресов, из них два служебных. Перебираем остальные и считаем единицы в 32-битной записи.
Ответ: 4160.
from ipaddress import ip_network
net = ip_network('209.13.237.203/255.255.192.0', strict=False)
cnt = 0
for a in net.hosts(): # без адреса сети и широковещательного
v = int(a)
if bin(v).count('1') % 4 == 0:
cnt += 1
print(cnt)