Задание 13

18 7 минут

Задание 13 связано с IP-адресами и масками подсети. Его можно решить вручную с помощью битовых операций, но мы покажем, как использовать Python для автоматизации и проверки результатов.

Основные понятия

Компьютерная сеть

Это группа (два и более) компьютеров (узлов), соединенных каналами передачи данных. Сети обеспечивают быстрый обмен данными и совместное использование ресурсов, ПО и баз данных. 

 

  • Каждое устройство, подключенное к сети Интернет, должен иметь собственный адрес, который называют IP-адресом (Internet Protocol). 

 

  • IP-адрес состоит из 32 бит. Для удобства его записывают в виде четырёх десятичных чисел, разделенных точками. Каждое число занимает 8 бит (от 0 до 255). Пример: 192.168.85.210 

Маска подсети 

  • IP-адрес состоит из двух частей: адреса сети и узла в этой подсети. Если два устройства находятся в одной подсети, то этот адрес у них будет одинаковый, а адрес узла – разный.

 

  • Деление адреса на части определяется маской — 32-битным числом, в двоичной записи которого сначала до какого-то момента стоят только единицы, а потом — только нули. 

 

  • Если узлы относятся к одной сети, то адрес сети у них одинаковый.

теория

Переходим от теории практике! Основная задача – создать сеть и перебрать в ней ip-адреса, из которых ты потом выберешь подходящие.

 

Чтобы решить это задание в Python, тебе нужно знать некоторые функции. Рассмотрим их ниже. 

Модуль ipaddress 

  • ip_address() создает объект — IP-адрес. В качестве аргумента передается строка со значением IP-адреса. 

 

  • ip_network() создает объект сети. В качестве аргумента передается строка, содержащая IP-адрес сети и маску или количество бит, отведенных под адрес сети (количество единиц в маске), разделённые значком /

теория

  • пройдясь циклом по объекту сети, можно перебрать все IP-адреса этой сети 

теория

Метод zfill() 

Иногда тебе может потребоваться заполнение нулями слева до определенной длины строки. В этом тебе поможет метод строк zfill().

 

str.zfiil(len) — возвращает копию строки, к которой применяется метод, дополняя ее незначащими нулями до указанной длины строки, и не меняет исходную строку.

Что же делать, если в программе вылезла ошибка? Разберем еще парочку полезных команд в Питоне ниже.

Обработка исключений 

  • Исключения (exceptions) — механизм обработки ошибок во время выполнения программы. Они позволяют при возникновении ошибки не завершить программу аварийно, а продолжить работу, «обрабатывая» эту ошибку. 

 

  • В Питоне для обработки исключений используются блоки try-except (еще есть finally и else). В блоке try код проверяется на наличие ошибок. Если встречается ошибка, выполняется блок except. В блоке finally пишется код, который выполнится независимо от возникновения ошибки, а в else — тот, который выполняется, если ошибка не возникла. 

теория

Если программа не может создать сеть, тебе может потребоваться пропустить эту попытку: тогда используй оператор-заглушку.

Игнор исключений 

pass — оператор-заглушка, который ничего не делает 🙂

теория

Поздравляем! Мы разобрали всю теорию, которая нужна тебе для решения задания 13! Все, что тебе нужно, – много практиковаться. Тогда ты точно сдашь экзамен на высокие баллы 😄

Читайте также: