Скрипт wfcli.py предоставляет возможность управления контроллером через REST API и выполнения некоторых команд, доступных из веб-интерфейса контроллера, он предназначен для выполнения администратором однотипных и ежедневных задач без использования веб-интерфейса.
Скрипт написан на Python и для его работы необходима версия Python 3.11 или выше. Скрипт поддерживает два режима работы: интерактивный и командный интерфейс (CLI). Ниже описаны функциональные возможности скрипта, аргументы командной строки и примеры использования.
Запуск скрипта
Перед запуском скрипта необходимо установить библиотеку requests, это единственная зависимость скрипта. Установить библиотеку можно двумя способами:
- С помощью менеджера пакетов apt: выполните в консоли команду
sudo apt-get install python3-requests - Через менеджер Python-пакетов pip (при его наличии в системе): выполните в консоли команду
pip install requests
После запуска скрипта он автоматически определит доступный протокол для работы с REST API (HTTP или HTTPS), а также при успешной авторизации создаст файл кэша токена авторизации .wfcli_cache в папке, из которой он был запущен, для уменьшения количества запросов авторизации и ускорения работы с REST API. При наличии файла с данными для авторизации и токеном, для работы с API будет использоваться токен, если он был получен при авторизации на том же контроллере, который указан в аргументах запуска.
Общий синтаксис
python wfcli.py [-h] [-s SERVER] [-u USER] [-p PASSWORD] [-v] {ssid, ssid_profile, client, ap} ...
Позиционные аргументы
{ssid, ssid_profile, client, ap}: Основные команды для управления различными объектами контроллера:ssid: Управление SSID по имениssid_profile: Управление SSID по номеру профиляclient: Управление клиентамиap: Управление точками доступа (AP)
Опции
-h, --help: Показать справочное сообщение и выйти-s SERVER, --server SERVER: IP-адрес контроллера (по умолчанию: localhost)-u USER, --user USER: Имя пользователя веб-интерфейса (по умолчанию: admin)-p PASSWORD, --password PASSWORD: Пароль веб-интерфейса (по умолчанию: admin)-v, --verbose: Подробный вывод (по умолчанию отключен)
Интерактивный режим
Для запуска скрипта в интерактивном режиме запустите скрипт без позиционных аргументов:
python wfcli.py -s 10.20.30.40 -u admin -p password
После запуска интерактивного CLI используйте команды описанные ниже.
Примеры использования
Управление SSID
- Команда:
ssid Субкоманды:
enable,disable,clientsenable: Включить SSID (не выводит сообщений)disable: Отключить SSID (не выводит сообщений)clients: Показать список клиентов, подключенных к SSID с их MAC адресами, IP адресами, hostname и т.д.
Пример вывода команды
clientsдля SSID с именемTestSSID1:$ python wfcli.py ssid clients TestSSID1 mac username hostname ip ssid accessPointName ----------------- -------- -------- ------------- ---------- --------------- 11:22:33:44:55:66 79012345678 Test_Client1 192.168.2.199 TestSSID1 Test_AP1
Управление профилями SSID
- Команда:
ssid_profile Субкоманды:
enable,disable,clientsenable: Включить профиль SSID (не выводит сообщений)disable: Отключить профиль SSID (не выводит сообщений)clients: Показать список клиентов, подключенных к профилю SSID с их MAC адресами, IP адресами, hostname и т.д.
Пример вывода команды
clientsдля SSID с номером профиля 5:$ python wfcli.py ssid_profile clients 5 mac username hostname ip ssid accessPointName ----------------- -------- -------- ------------- ---------- --------------- 11:22:33:44:55:66 79012345678 Test_Client1 192.168.2.199 TestSSID1 Test_AP1
Управление клиентами
- Команда:
client Субкоманды:
list,show,kicklist: Показать список всех клиентов с их MAC адресами, IP адресами, hostname и т.д.show <MAC>: Показать информацию о клиенте с заданным MAC-адресомkick <MAC>: Отключить клиента с заданным MAC-адресом (не выводит сообщений)
Пример вывода команды
list:$ python wfcli.py client list mac username hostname ip ssid accessPointName ----------------- -------- -------- ------------- ---------- --------------- 11:22:33:44:55:66 79012345678 Test_Client1 192.168.2.199 TestSSID1 Test_AP1 AA:BB:CC:DD:EE:FF 79098765432 Test_Client2 192.168.2.200 TestSSID2 Test_AP2Пример вывода команды
showдля клиента с MAC-адресом11:22:33:44:55:66:$ python wfcli.py client show 11:22:33:44:55:66 mac username hostname ip ssid accessPointName ----------------- -------- -------- ------------- ---------- --------------- 11:22:33:44:55:66 79012345678 Test_Client1 192.168.2.199 TestSSID1 Test_AP1
Управление точками доступа (AP)
- Команда:
ap Субкоманды:
list,refresh,rebootlist: Показать список точек доступа с их MAC адресами, IP адресами, моделями и версиями ПО и т.д.refresh <MAC>: Обновить конфигурацию точки доступа с заданным MAC-адресом (не выводит сообщений)reboot <MAC>: Перезагрузить точку доступа с заданным MAC-адресом (не выводит сообщений)
Пример вывода команды
list:$ python wfcli.py ap list mac version ip healthState ----------------- -------------------------------------- --------------- ---------------- 11:11:11:11:11:11 Fplus WF-AP-624M-IIC 0.54.0-9 10.20.30.100 Unavailable 22:22:22:22:22:22 Fplus WF-AP-622L-IIC 0.54.0-6 10.20.30.101 AvailableSucceed 33:33:33:33:33:33 Fplus WF-AP-624H-IIC 0.51.0-15 10.20.30.102 AvailableSucceed