Скрипт wfcli.py
предоставляет возможность управления контроллером через REST API и выполнения некоторых команд, доступных из веб-интерфейса контроллера, он предназначен для выполнения администратором однотипных и ежедневных задач без использования веб-интерфейса.
Скрипт написан на Python и для его работы необходима версия Python 3.11 или выше. Скрипт поддерживает два режима работы: интерактивный и командный интерфейс (CLI). Ниже описаны функциональные возможности скрипта, аргументы командной строки и примеры использования.
Перед запуском скрипта необходимо установить библиотеку requests, это единственная зависимость скрипта. Установить библиотеку можно двумя способами:
sudo apt-get install python3-requests
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
Субкоманды: 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_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
Субкоманды: 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