Задание 10:
IP-адрес и маска сети

IP-адрес — 32 бита. Маска делит их на две части: адрес сети и номер узла в ней.
Всё задание решается модулем ipaddress — одной строкой создаём сеть, дальше спрашиваем у неё что нужно.

Базовый уровень, один балл. Ответ — одно целое число.

условие

Как это выглядит на экзамене

Маска сети показывает, какая часть IP-адреса узла относится к адресу сети, а какая — к адресу узла. Адрес сети — результат поразрядной конъюнкции адреса узла и маски.

Даны адрес узла 192.168.159.86 и маска 255.255.252.0. Найдите адрес сети. В ответе — сумма октетов найденного адреса.

Демоверсия 2027, своими словами.

Что дано

Адрес узла и маска — по четыре числа через точку. Октет — одно из этих чисел, один байт.

Где теряют балл

В том, какой адрес спрошен: адрес сети, широковещательный, наибольший для компьютера — это три разных адреса. И в форме ответа: сумма октетов или адрес без точек.

формы

О чём спрашивают

Адрес сети · широковещательныйнайти адрес, в ответ — сумма его октетов
Наибольший для компьютерапредпоследний адрес сети, в ответ — цифры без точек
Сколько адресову которых число единиц кратно (не кратно) k — или единиц слева не больше нулей справа
Какая маскапо адресу сети узла · по двум узлам в разных сетях · по числу адресов с k единицами
Два узла в одной сетинаименьшее число адресов с k единицами

Замер по 13 задачам экзаменов 2024–2027: счёт адресов по единицам — 4, два узла в разных сетях — 2, остальные формы — по одной. Девять форм — девять задач практикума.

двоичная запись

Адрес и маска — 32 бита

десятичнаядвоичная, по байтам
IP-адрес узла192.168.159.86код
маска255.255.252.0код
адрес сети = И192.168.156.0код

В маске сначала единицы, потом нули. Здесь единиц 22 — маску пишут и так: код. Под единицами — адрес сети, под нулями — номер узла: 10 бит, 210 = 1024 адреса.

Поразрядное И: 1 только там, где обе цифры 1. Поэтому под нулями маски в адресе сети всегда нули: 159 И 252 = 156.

адреса сети

Первый, последний, предпоследний

адрес сетиномер узла из одних нулей192.168.156.0
наименьший для компьютераследующий за адресом сети192.168.156.1
наибольший для компьютераперед широковещательным192.168.159.254
широковещательныйномер узла из одних единиц192.168.159.255

Адрес сети и широковещательный — служебные: компьютерам их не назначают. Поэтому узлов в сети на два меньше, чем адресов.

инструмент

Модуль ipaddress

фрагмент программы — набери его сам

Второй аргумент код разрешает дать адрес любого узла сети — без него Python потребует адрес самой сети и выдаст ошибку. Маску можно писать и числом единиц: код.

форма ответа

Сумма октетов и запись без точек

фрагмент программы — набери его сам

код — четыре числа адреса строками; код делает их числами.

фрагмент программы — набери его сам

Читай, что просят

«Сумма октетов» — одно число. «Без разделителей» — цифры подряд, точки убрать.

счёт адресов

Сколько адресов с нужным числом единиц

Сеть задана адресом 172.16.160.0 и маской 255.255.240.0. Сколько в ней IP-адресов, у которых количество единиц в двоичной записи кратно 2?

фрагмент программы — набери его сам

код — адрес двоичной записью, ровно 32 цифры. Считаются все адреса сети, включая адрес сети и широковещательный, — если их не исключили словами.

левые и правые байты

Половинки адреса

фрагмент программы — набери его сам

Срез код — первые 16 цифр, код — остальные. Каждое слово условия — отдельная проверка в код, через код.

перебор маски

Неизвестна маска — перебираем m

Для узла 192.75.64.98 адрес сети равен 192.75.64.0. Каково наименьшее количество единиц в маске?

фрагмент программы — набери его сам
mадрес сетисовпал?
17192.75.0.0нет
18 ✓192.75.64.0да
…192.75.64.0да
25192.75.64.0да
26192.75.64.64нет

Наименьшее — первое подходящее и код; наибольшее — код и печать после цикла (здесь вышло бы 25).

два узла

Два узла в разных сетях

Наименьшее m, при котором сети разные:

фрагмент программы — набери его сам

Наибольшее — и узел не может быть служебным адресом:

фрагмент программы — набери его сам

У адреса 118.187.59.255 хвост из десяти единиц: при маске больше 21 он становится широковещательным. Ответ — 21.

маска по счёту

От маленькой сети к большой

Узел 143.131.211.37; в его сети 15 адресов с ровно 10 единицами. Единиц в маске?

фрагмент программы — набери его сам

Почему с 32 вниз

Чем меньше m, тем больше сеть. Идём от маленьких сетей и останавливаемся на ответе — до /0 (четыре миллиарда адресов) не дойдём.

Два узла в одной сети

Тот же цикл: первая сеть, где код, — наименьшая общая; в ней и считаем.

ловушки

Пять ловушек

  1. Маску не применили. Сумма октетов узла — не ответ: нужен код.
  2. Последний и предпоследний. код — широковещательный, компьютеру — код.
  3. Кратно или не кратно. Вместе они дают все адреса сети.
  4. Все адреса — значит все. Служебные тоже считаются, если их не исключили словами.
  5. Единицы, а не нули. Единиц в маске код, нулей код.

Страница практикума узнаёт эти ошибки по ответу и показывает на разборе красным, где именно сломалось.

практикум

Что дальше

Девять задач — по одной на каждую форму вопроса, все на экране сразу, порядок свой. Ошибся — появится разбор рисунком и программа, которая решает именно эту задачу, а кнопка «Новые числа» даст такую же с другими числами.

Найти адресадрес сети · широковещательный · наибольший для компьютера
Посчитать адресакратность единиц · левые и правые байты
Найти маскупо адресу сети · два узла в разных сетях · по числу адресов
Два узла в одной сетинаименьшее число адресов с k единицами

Исправленное не в зачёт: задача, решённая после разбора, закрыта, но в отметку идёт новая — по кнопке «Новые числа». Добрать можно хоть до пятёрки: 9 — «5», 8 — «4», 7 — «3».

дома

Домашняя работа

Те же девять форм вопроса, по одной задаче на каждую. Тип закрывается чистым верным ответом; ошибся — придёт такая же задача с другими числами.

Как сдать

От семи закрытых типов появится код работы вида код и кнопка «Сдать работу».

Вторая кнопка открывает письмо: к коду прикладываются снимки своих программ и того, что они напечатали.

Зачем снимок

Число можно получить и не написав программу. Снимок кода показывает, что приём ваш, — поэтому он и просится вместе с ответом.

В начале следующей пары — проверочная из пяти задач.

Материалы подготовлены с использованием технологий искусственного интеллекта. Пробел раскрыть и дальше · ← → слайды