Скрипт 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
,clients
enable
: Включить 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
,clients
enable
: Включить профиль 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
,kick
list
: Показать список всех клиентов с их 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
,reboot
list
: Показать список точек доступа с их 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