Marzban API — это мощная асинхронная Python-библиотека для управления пользователями, администраторами, узлами и статистикой в Marzban. API идеально подходит для автоматизации и интеграции в ваши проекты.
↗
↗
↗
↗
Для начала работы с Marzban API выполните установку последней версии:
Создайте API-клиент:
from marzban import MarzbanAPI
api = MarzbanAPI ( base_url = " http://marzban-api.com " )
Настройте туннель для подключения:
base_url = " http://127.0.0.1 " ,
ssh_username = ' root ' , #Если используете SSH подключение
ssh_host = ' 99.240.220.100 ' , #Если используете SSH подключение
ssh_port = 22 , #Если используете SSH подключение
ssh_private_key_path = ' C:/Users/User/.ssh/id_rsa ' , #Если используете SSH подключение
ssh_key_passphrase = ' sshpassphrase ' , #Если используете SSH подключение
local_bind_host = ' 127.0.0.1 ' , #Если используете SSH подключение
local_bind_port = 8020 , #Если используете SSH подключение
remote_bind_host = ' 127.0.0.1 ' , #Если используете SSH подключение
remote_bind_port = 8000 #Если используете SSH подключение
token = await api. get_token ( username = " admin " , password = " admin " )
Получение текущего администратора:
current_admin = await api. get_current_admin ( token = token.access_token )
print ( " Текущий администратор: " , current_admin )
Создание нового администратора:
new_admin = AdminCreate ( username = " admin2 " , is_sudo = False , password = " new_password " )
created_admin = await api. create_admin ( admin = new_admin , token = token.access_token )
print ( " Создан администратор: " , created_admin )
Изменение администратора:
modified_admin = await api. modify_admin ( username = " admin2 " , admin = AdminModify ( password = " new_password2 " ) , token = token.access_token )
print ( " Изменён администратор: " , modified_admin )
Удаление администратора:
await api. remove_admin ( username = " admin2 " , token = token.access_token )
print ( " Администратор удалён. " )
Получение списка администраторов:
admins = await api. get_admins ( token = token.access_token , offset = 0 , limit = 10 )
print ( " Администраторы: " , admins )
Добавление нового пользователя:
new_user = UserCreate ( username = " new_user " , proxies = { " vless " : ProxySettings ( flow = " xtls-rprx-vision " ) } )
added_user = await api. add_user ( user = new_user , token = token.access_token )
print ( " Добавленный пользователь: " , added_user )
Получение информации о пользователе:
user_info = await api. get_user ( username = " new_user " , token = token.access_token )
print ( " Информация о пользователе: " , user_info )
Изменение пользователя:
modified_user = await api. modify_user ( username = " new_user " , user = UserModify ( data_limit = 1073741824 ) , token = token.access_token )
print ( " Изменён пользователь: " , modified_user )
Удаление пользователя:
await api. remove_user ( username = " new_user " , token = token.access_token )
print ( " Пользователь удалён. " )
Добавление нового узла:
new_node = NodeCreate ( name = " Node1 " , address = " 192.168.1.1 " )
added_node = await api. add_node ( node = new_node , token = token.access_token )
print ( " Добавленный узел: " , added_node )
Получение информации об узле:
node_info = await api. get_node ( node_id = added_node.id , token = token.access_token )
print ( " Информация об узле: " , node_info )
Изменение узла:
modified_node = await api. modify_node ( node_id = added_node.id , node = NodeModify ( name = " Node1_Updated " ) , token = token.access_token )
print ( " Изменён узел: " , modified_node )
Удаление узла:
await api. remove_node ( node_id = added_node.id , token = token.access_token )
Получение статистики системы:
system_stats = await api. get_system_stats ( token = token.access_token )
print ( " Системная статистика: " , system_stats )
Получение использования данных:
user_usage = await api. get_user_usage ( username = " new_user " , token = token.access_token , start = " 2023-01-01 " , end = " 2023-12-31 " )
print ( " Использование данных: " , user_usage )
Мы всегда рады вашим предложениям и улучшениям. Если вы хотите помочь, откройте Issue ↗ или создайте Pull Request (PR).
Этот проект распространяется под лицензией MIT. Подробнее в LICENSE ↗ .
Если у вас есть вопросы или предложения, свяжитесь с нами: