Задание 10 ЕГЭ-2027 по информатике: как найти адрес сети по маске

В демоверсии даны IP-адрес компьютера и маска 255.255.252.0. Разберём, какие биты сохраняет маска, найдём адрес сети вручную и проверим ответ на Python.

Содержание

Условие задания № 10

В проекте демоверсии ЕГЭ-2027 по информатике это задание находится на странице 12. Приведём условие целиком.

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.

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

Например, если бы найденный адрес был равен 100.20.3.4, то в ответе следовало бы записать: 127.

Что такое адрес сети

Допустим, ноутбук и телефон подключены к одной домашней сети. У ноутбука IP-адрес 192.168.1.37, у телефона — 192.168.1.82. Так сеть различает два устройства. В условии экзамена любое такое устройство называют узлом.

Посмотрим на адрес ноутбука. В нём четыре числа, разделённые точками. Каждое занимает восемь бит и может принимать значения от 0 до 255. Группу из восьми бит называют октетом. Например, третий октет адреса ноутбука равен 1, а четвёртый — 37.

Какая часть адреса общая для всей сети? Это определяет маска подсети. Пусть у обоих устройств маска 255.255.255.0. При такой маске первые три октета относятся к сети, а последний отведён устройству. Чтобы получить адрес самой сети, сохраним первые три числа и запишем ноль на месте последнего.

Ноутбук 192.168.1.37 и телефон 192.168.1.82 с маской 255.255.255.0 принадлежат сети 192.168.1.0.
Рисунок 1 — У ноутбука и телефона разные IP-адреса. При маске 255.255.255.0 оба устройства принадлежат одной сети.

Как применить маску из демоверсии

Вернёмся к адресу 192.168.159.86. Здесь в третьем октете маски стоит 252. Чтобы понять, что произойдёт с числом 159, понадобится двоичная запись. В ней каждая цифра — один бит, который равен нулю или единице.

Запишем биты адреса и маски друг под другом. В каждом столбце применим правило из условия. Если в маске стоит 1, переписываем бит адреса. Если стоит 0, записываем 0. Единица в результате получится только в том столбце, где обе цифры равны единице. Эту операцию называют поразрядным И, или поразрядной конъюнкцией.

Теперь можно определить три октета из четырёх. Число 255 записывается как 11111111, поэтому первые два числа адреса целиком сохраняются. Последний октет маски состоит из восьми нулей, поэтому вместо 86 получим 0.

1-й октет2-й3-й4-й
Адрес узла19216815986
Маска2552552520
Адрес сети192168?0

Почему в третьем октете получается 156

У каждого из восьми битов есть свой вес. Справа налево веса удваиваются — 1, 2, 4, 8, 16, 32, 64, 128. Число складывается из весов тех битов, в которых стоит единица. Например, 5 = 4 + 1, поэтому его двоичная запись в одном октете — 00000101.

Разложим так же 159. Берём 128, остаётся 31. Остаток равен 16 + 8 + 4 + 2 + 1. Значит, в столбцах с весами 64 и 32 будут нули, в остальных — единицы. Получаем 10011111. У маски запись ещё проще. Все восемь единиц дали бы 255. Чтобы получить 252, достаточно убрать 2 и 1. Получаем 11111100.

Вес битов слева направо 128, 64, 32, 16, 8, 4, 2, 1. Адрес 10011111, маска 11111100. В результате 10011100, или 156.
Рисунок 2 — Поразрядное И для третьего октета. Рамкой выделены два столбца, в которых маска обнуляет биты адреса.

Прочитаем нижнюю строку рисунка. Первые шесть битов остались прежними, а в двух правых столбцах получились нули. Именно эти биты добавляли к адресу 2 и 1. Вычтем их из 159 и получим 156.

Подставим результат в таблицу. Адрес сети — 192.168.156.0. В задании просят сложить четыре октета найденного адреса. Получаем 192 + 168 + 156 + 0 = 516. В бланк записываем 516.

Как проверить решение на Python

В стандартном модуле ipaddress есть функция ip_network. Передадим ей адрес узла и маску через косую черту. Параметр strict=False позволяет указать адрес любого устройства внутри сети.

solution.py
Python
from ipaddress import ip_network

network = ip_network("192.168.159.86/255.255.252.0", strict=False)
address = network.network_address

print(address)
print(sum(address.packed))
Вывод
TXT
192.168.156.0
516

Свойство network_address даёт адрес сети. В первой строке программа печатает его с точками. Для второй строки берём address.packed — четыре байта адреса. Функция sum складывает их числовые значения, как мы сделали вручную.

Задача для самостоятельной проверки

Даны адрес узла 10.42.77.201 и маска 255.255.248.0. Найдите адрес сети и сумму его октетов. Для начала определите, какие биты третьего октета обнулит маска.

Решение. Число 248 на семь меньше 255. Эти семь складываются из 4 + 2 + 1, поэтому у маски три нуля справа. А число 77 складывается из 64 + 8 + 4 + 1. Из трёх младших битов единицы стоят только на местах 4 и 1. Обнуляем их и получаем 77 − 4 − 1 = 72.

Адрес сети — 10.42.72.0. Складываем 10 + 42 + 72 + 0 и получаем 124.

Из этой же демоверсии в журнале есть разбор задания № 23. В нём по списку дорог строим граф и находим кратчайший путь.

Источники

  1. ФИПИ. Проект демоверсии и спецификации ЕГЭ-2027 по информатике (ZIP), задание 10 [Электронный ресурс]. — URL: https://doc.fipi.ru/ege/demoversii-specifikacii-kodifikatory/2027/inf_11_2027.zip (дата обращения: 10.11.2026).
  2. ФИПИ. Навигатор подготовки к ЕГЭ-2026, цифровая грамотность [Электронный ресурс]. — URL: https://doc.fipi.ru/navigator-podgotovki/navigator-ege/2026/Inf_1_gramotnost.pdf (дата обращения: 10.11.2026).
  3. Python. Документация стандартного модуля ipaddress [Электронный ресурс]. — URL: https://docs.python.org/3/library/ipaddress.html (дата обращения: 10.11.2026).
ЕГЭИнформатикаКомпьютерные сети