Все задания и вспомогательные файлы можно скачать в . Если в заданиях раздела есть задания с буквами (например, 5.2a), то лучше выполнить сначала задания без букв, а затем с буквами. Задания с буквами, как правило, немного сложнее заданий без букв и развивают или усложняют идею в соответствующем задании без буквы.
Например, в разделе есть задания 5.1, 5.2, 5.2a, 5.2b, 5.3, 5.3a. Сначала лучше выполнить задания 5.1, 5.2, 5.3, а затем 5.2a, 5.2b, 5.3a
Если задания с буквами получается сделать сразу, лучше делать их по порядку.
Создать функцию check_ip_addresses, которая проверяет доступность IP-адресов.
Функция ожидает как аргумент список IP-адресов. И возвращает два списка:
Для проверки доступности IP-адреса, используйте ping. Адрес считается доступным, если на три ICMP-запроса пришли три ответа.
Функция check_ip_addresses из задания 12.1 принимает только список адресов, но было бы удобно иметь возможность указывать адреса с помощью диапазона, например, 192.168.100.1-10.
Создать функцию check_ip_availability, которая проверяет доступность IP-адресов.
Функция ожидает как аргумент список IP-адресов.
IP-адреса могут быть в формате:
Если адрес указан в виде диапазона, надо проверить доступность всех адресов диапазона включая последний.
Для упрощения задачи, можно считать, что в диапазоне всегда меняется только последний октет адреса.
Функция возвращает два списка:
Для выполнения задачи можно воспользоваться функцией check_ip_addresses из задания 12.1.
Создать функцию ip_table, которая отображает таблицу доступных и недоступных IP-адресов.
Функция ожидает как аргументы два списка:
Результат работы функции - вывод на стандартный поток вывода таблицы вида:
Reachable Unreachable ----------- ------------- 10.1.1.1 10.1.1.7 10.1.1.2 10.1.1.8 10.1.1.9
Функция не должна изменять списки, которые передавны ей как аргументы. То есть, до выполнения функции и после списки должны выглядеть одинаково.