Книга: PyNEng
Назад: Дополнительные материалы
Дальше: 13. Итераторы, итерируемые объекты и генераторы

Задания

Задания

Все задания и вспомогательные файлы можно скачать в . Если в заданиях раздела есть задания с буквами (например, 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

Если задания с буквами получается сделать сразу, лучше делать их по порядку.

Задание 12.1

Создать функцию check_ip_addresses, которая проверяет доступность IP-адресов.

Функция ожидает как аргумент список IP-адресов. И возвращает два списка:

  • список доступных IP-адресов
  • список недоступных IP-адресов

Для проверки доступности IP-адреса, используйте ping. Адрес считается доступным, если на три ICMP-запроса пришли три ответа.

Задание 12.2

Функция check_ip_addresses из задания 12.1 принимает только список адресов, но было бы удобно иметь возможность указывать адреса с помощью диапазона, например, 192.168.100.1-10.

Создать функцию check_ip_availability, которая проверяет доступность IP-адресов.

Функция ожидает как аргумент список IP-адресов.

IP-адреса могут быть в формате:

  • 10.1.1.1
  • 10.1.1.1-10.1.1.10
  • 10.1.1.1-10

Если адрес указан в виде диапазона, надо проверить доступность всех адресов диапазона включая последний.

Для упрощения задачи, можно считать, что в диапазоне всегда меняется только последний октет адреса.

Функция возвращает два списка:

  • список доступных IP-адресов
  • список недоступных IP-адресов

Для выполнения задачи можно воспользоваться функцией check_ip_addresses из задания 12.1.

Задание 12.3

Создать функцию ip_table, которая отображает таблицу доступных и недоступных IP-адресов.

Функция ожидает как аргументы два списка:

  • список доступных IP-адресов
  • список недоступных IP-адресов

Результат работы функции - вывод на стандартный поток вывода таблицы вида:

Reachable    Unreachable -----------  ------------- 10.1.1.1     10.1.1.7 10.1.1.2     10.1.1.8              10.1.1.9 

Функция не должна изменять списки, которые передавны ей как аргументы. То есть, до выполнения функции и после списки должны выглядеть одинаково.

Назад: Дополнительные материалы
Дальше: 13. Итераторы, итерируемые объекты и генераторы