Найти тему

Разбор номера 7696 по информатике #13

Оглавление

Условие: № 5911 (Уровень: Средний)
Статья подготовлена командой itpy
Полный разбор задачи в Telegram

🚩 Условие задачи:

Для узла с IP-адресом 224.128.112.142 адрес сети равен 224.128.96.0.
Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.

🚩 Теоретическая справка:

Маска сети имеет длину 32 бита и вид 1111..000 (сначала единицы, потом нули). Поэтому мы можем перебрать ее значения через for mask in range(32+1):

👩‍💻 Код решения:

from ipaddress import *
for mask in range(32+1):
net = ip_network(f'224.128.112.142/{mask}', 0)
if str(net) == f'224.128.96.0/{mask}':
print(str(net.netmask).split('.')[2])


👩‍💻 Комментарии к коду:

1. from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.

2.
Цикл for mask in range(32+1):
Для перебора возможных значений маски сети от 0 до 32 (включительно).

3.
net = ip_network(f'224.128.112.142/{mask}', 0)
Создание объекта сети net с заданным IP-адресом и переменной маской подсети, где последний аргумент указывает на коррекцию префикса.

4.
if str(net) == f'224.128.96.0/{mask}':
Условие проверки соответствия адреса сети определенному значению.

5.
print(str(net.netmask).split('.')[2])
Вывод третьего октета маски подсети из объекта сети net, если условие выполнено.

Ответ: 224

Читайте нас в телеграмме:

Информатика ЕГЭ | itpy 👨‍💻

Присоединяйся к нашему Телеграм каналу: t.me/informatika_kege_itpy
Присоединяйся к нашему Телеграм каналу: t.me/informatika_kege_itpy