Задание 10 ЕГЭ по информатике: IP-адрес, маска и адрес сети
Задание 10 ЕГЭ по информатике в 2027 году проверяет умение использовать маску подсети: по IP-адресу узла и маске найти адрес сети или посчитать адреса сети с заданным свойством. Адрес сети получают поразрядной конъюнкцией адреса и маски; в Python это делает модуль ipaddress.
- Что проверяет: Умение использовать маску подсети. Базовый уровень сложности. В 2026 году задание 10 проверяло информационный поиск средствами текстового процессора, в проекте спецификации 2027 года его тема заменена.
- Баллы: 1 первичный балл
- Формат ответа: Целое число: сумма октетов адреса, количество адресов или другая величина из вопроса.
- Программа: задание решают без программы, ответ можно проверить на Python
- Уровень сложности: базовый
- Время: около 3 минут по спецификации
- Кодификатор: 1.2 — компьютерные сети, адресация в сети Интернет, протоколы стека TCP/IP, разделение IP-сети на подсети с помощью масок; Требование 1.2 — представления о базовых принципах организации и функционирования компьютерных сетей
Как решать
IP-адрес — это 32 бита, записанные четырьмя десятичными числами от 0 до 255 (октетами). Маска — тоже 32 бита: сначала идут единицы, потом нули. Единицы маски отмечают биты адреса сети, нули — биты номера узла внутри сети. Адрес сети — поразрядная конъюнкция адреса узла и маски.
Шаг 1. Там, где октет маски равен 255, октет адреса сети совпадает с октетом адреса узла. Там, где октет маски равен 0, в адресе сети стоит 0. Считать нужно только октет, где маска не равна ни 0, ни 255.
Шаг 2. Переведите этот октет адреса и маски в двоичную запись из восьми цифр и выполните конъюнкцию: единица остаётся только там, где она есть в обоих числах. Например, 87 = 01010111₂, 224 = 11100000₂, результат 01000000₂ = 64.
Шаг 3. В сети 2^k адресов, где k — количество нулей в маске. Если нужно посчитать адреса с условием на двоичную запись, например на количество единиц, учтите, что первые 32 − k бит у всех адресов сети одинаковые: единицы в них считают один раз, а для остальных k бит используют число сочетаний.
В Python задачу проверяют модулем ipaddress: ip_interface('адрес/маска').network даёт сеть, цикл for a in ip_network(...) перебирает все её адреса. По условию уточняйте, учитываются ли адрес сети и широковещательный адрес.
Примеры с решением
Пример 1
Маска сети — 32-битное число, которое делит IP-адрес на две части: адрес сети и номер узла в этой сети. Адрес сети получают поразрядной конъюнкцией IP-адреса узла и маски.
Даны IP-адрес узла 172.30.87.201 и маска 255.255.224.0. Найдите адрес сети и в ответе укажите сумму числовых значений его октетов.
Проверка ответа на Python
from ipaddress import ip_interface
node = ip_interface("172.30.87.201/255.255.224.0")
network = node.network.network_address # поразрядная конъюнкция адреса и маски
print(sum(map(int, str(network).split("."))))Ответ: 266
Первые два октета маски равны 255, поэтому 172 и 30 сохраняются. Четвёртый октет маски равен 0, в адресе сети там 0.
Третий октет: 87 = 01010111₂, 224 = 11100000₂, конъюнкция 01000000₂ = 64. Адрес сети 172.30.64.0, сумма октетов 172 + 30 + 64 + 0 = 266.
Пример 2
Сеть задана IP-адресом 10.8.40.0 и маской 255.255.248.0. Сколько в этой сети IP-адресов, у которых количество единиц в двоичной записи кратно 4? Учитывайте все адреса сети, включая адрес сети и широковещательный адрес.
Проверка ответа на Python
from ipaddress import ip_network
net = ip_network("10.8.40.0/255.255.248.0")
count = 0
for address in net: # все адреса сети, включая адрес сети и широковещательный
if bin(int(address)).count("1") % 4 == 0:
count += 1
print(count)Ответ: 496
В маске 255.255.248.0 21 единица (8 + 8 + 5) и 11 нулей, в сети 2^11 = 2048 адресов.
Первые 21 бит у всех адресов одинаковые: 10 = 00001010₂ (две единицы), 8 = 00001000₂ (одна), старшие пять бит числа 40 = 00101000₂ — 00101 (две). Всего в неизменной части 5 единиц.
Среди 11 изменяемых бит должно быть k единиц, чтобы 5 + k делилось на 4: k = 3, 7 или 11. Количество адресов: C(11, 3) + C(11, 7) + C(11, 11) = 165 + 330 + 1 = 496.
Типичные ошибки
- Выполняют конъюнкцию над десятичными числами. Её делают по битам, поэтому октет переводят в двоичную запись.
- Считают, что в сети 2^k − 2 адреса. В заданиях ЕГЭ адресов 2^k, если в условии не сказано исключить адрес сети и широковещательный адрес.
- Теряют ведущие нули при переводе октета: 40 — это 00101000, и старшие нули важны, когда считают биты по позициям.
- Путают количество единиц в маске с количеством адресов в сети.
Потренироваться на тренажёре
- Перевод чисел между системами счисления с решением
- Типы и арифметика в Python: задачи
- Задачи: полный перебор вариантов
- Тренажёр Python
Частые вопросы
Что изменилось в задании 10 ЕГЭ по информатике в 2027 году?
По проекту спецификации 2027 года задание 10 проверяет умение использовать маску подсети. В 2026 году под этим номером был информационный поиск средствами текстового процессора, маска подсети тогда проверялась в задании 13.
Как найти адрес сети по IP-адресу и маске?
Выполните поразрядную конъюнкцию. Октеты маски 255 переносят октет адреса без изменений, октеты 0 дают 0, остальные переводят в двоичную запись и оставляют единицы только там, где они есть и в адресе, и в маске.
Сколько адресов в сети с маской 255.255.255.0?
В такой маске 24 единицы и 8 нулей, поэтому в сети 2^8 = 256 адресов, включая адрес сети и широковещательный адрес.
Официальные материалы
- Демоверсия, спецификация и кодификатор ЕГЭ 2027 по информатике (архив, проект)
- Демоверсии, спецификации и кодификаторы ЕГЭ по всем предметам
- Открытый банк заданий ЕГЭ
Другие задания
Все задания и структура экзамена — на странице ЕГЭ по информатике. Соседние разборы: задание 9 и задание 11.
Описание задания сверено 28 сентября 2026 года со спецификацией 2027 года (документы 2027 года). Примеры составлены нами по структуре демоверсии, каждое решение запущено, и напечатанный им ответ совпадает с ответом на странице. Кодолимп не связан с разработчиками экзамена. Заметили неточность — напишите нам.