Задание 13
Задание 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! Все, что тебе нужно, – много практиковаться. Тогда ты точно сдашь экзамен на высокие баллы 😄