IP-адреса и маски сетей TCP/IP
Задание 13 · Билет 2 · ЕГЭ по информатике
Условие
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла относится к адресу сети, а какая — к адресу узла. Адрес сети получается поразрядной конъюнкцией адреса узла и маски.
Сеть задана IP-адресом 249.0.33.87 и маской 255.252.0.0.
Попробуйте программой
Необязательно, но удобно: напишите здесь свой код на Python, который найдёт ответ. Если не получится — откройте решение и вставьте готовую программу одной кнопкой.
Решите программой на Python
в браузереНапишите свой код, который найдёт ответ, и нажмите «Выполнить». Горячая клавиша запуска: Ctrl/⌘ + Enter.
Потренируйся работать с масками: найди префикс, адрес сети и назначаемый адрес — от разминки до формата экзамена.
Решение
Решение
открыто шагов: 5 из 5Программа, которая находит ответ:
ip = (249 << 24) + (0 << 16) + (33 << 8) + 87 # IP-адрес узла одним 32-битным числом
mask = (255 << 24) + (252 << 16) # маска сети 255.252.0.0
net = ip & mask # адрес сети (поразрядное И)
ans = 0 # счётчик подходящих адресов
for x in range(1 << 18): # перебираем все 2^18 номеров узла
a = net + x # очередной адрес сети
left = (a >> 16) & 0xFFFF # левые два байта адреса
right = a & 0xFFFF # правые два байта адреса
if bin(right).count('1') > 2 * bin(left).count('1'): # условие задачи
ans += 1 # адрес подходит — считаем его
print(ans) # выводим ответ Теория и другие билеты
Разбор с нуля, типовые ошибки, частые вопросы и все билеты задания 13 — на странице задания.