TPLINK Archer C50 API
tplinkrouter的Python项目详细描述
TP Link Archer C50 API
基于HTTP的TP-Link-archerc50的API访问和路由器管理的python包
Version 1.0.0
依赖关系
使用
初始化
输入用于登录路由器管理页面的主机名/IP和凭据
importtplinkrouterrouter=tplinkrouter.C50('hostname','username','password')
可选:您也可以将记录器作为router = tplinkrouter.C50('hostname','username','password',_LOGGER)
传递给日志记录程序来记录错误,而不是打印错误
内置功能(v0.3.0+)
^{pr2}$router.get_clients()# Return['johns-iphone','macbook-pro','android-c78df7av3c5d4ba43cad65c6']
router.get_password('MYSSID1')# Return'mypassword24ghz'
router.set_password('MYSSID1','bobsyouruncle')
# Disable SSID broadcast of MYSSID2router.set_ssid_state('MYSSID2',False)
# Disable 5GHz Bandrouter.set_band('5GHz',False)
Function | Args | Description | Return |
---|---|---|---|
^{ | Gets basic info about the router | ^{ | |
^{ | Gets hardware and software version of the router | ^{ | |
^{ | Gets list of connected clients (host name) including DHCP & permanent leases, across both wifi and LAN | List of strings | |
^{ | Gets list of connected clients (MAC Address) including DHCP & permanent leases, across both wifi and LAN | List of strings | |
^{ | Gets details of wlans (by internal wlan name) including guest network wlans on both bands | Dict of Dicts | |
^{ | Gets list of ssids including guest network wlans on both bands | List of strings | |
^{ | ssid -> ^{ | Gets WPA2 PSK of specified SSID | string |
^{ | ssid -> ^{ | Sets new WPA2 PSK of specified SSID | boolean |
^{ | ssid -> ^{ | Enables/disables SSID broadcast of the specified SSID | boolean |
^{ | band -> ^{ | Enables/disables specified band | boolean |
^{ | Returns whether or not the device is powered on | boolean | |
^{ | Does what it says on the can | boolean | |
^{ | Does what it says on the can | boolean |
内部函数:_get()
用于访问不同命名命令的内部函数。如果您想直接访问路由器的返回数据,而不需要使用内置函数进行清理,则可以使用此选项
router._get('wlan')
支持的参数:
about
version
info
bands
wan
wlan
wlan_info
guest_24ghz
guest_5ghz
dhcp_settings
dhcp_clients
restart
logout
返回字典格式
内部函数:_set()
用于运行不同的set进程的内部函数。如果您想直接设置路由器的参数而不需要通过内置函数进行处理,则可以使用此选项
更改2.4Ghz网络密码:
router._set('24ghz',[{'[LAN_WLAN#1,1,0,0,0,0#0,0,0,0,0,0]0,5':{'X_TP_PreSharedKey':'new_password'}}])
启用/禁用WAN PPPoE:
# Enablerouter._set('wan',[{},{'[WAN_PPP_CONN#1,1,1,0,0,0#0,0,0,0,0,0]1,19':{'enable':'1'}},{}])# Disablerouter._set('wan',[{},{'[WAN_PPP_CONN#1,1,1,0,0,0#0,0,0,0,0,0]1,19':{'enable':'0'}}])
返回格式:布尔值
支持的参数:
wan
24ghz
5ghz
24ghz_band
5ghz_band
_set()
只更新参数2中传递的密钥。所有其他值都可以从路由器获取。
注1:值格式
在_set()
的参数2中传递的所有键/值都必须是字符串。
传递给_set()
的参数2必须是字典列表。在
注2:位置参数
_set()
参数2中的每个列表项都直接对应于进程中的每个子任务。
忽略列表中的某项将忽略该子任务。(参见示例:禁用WAN PPPoE,索引[2]省略)
要运行子任务而不更新其任何值,请在其位置传递一个空字典。在
注3:状态代码
内部函数返回一个附加键status_code
,其中包含请求的HTTP状态代码。在遍历返回的列表或dict之前,请记住忽略此键。在
模型
这只在运行固件160411的TP Link Archer C50 V1上进行了测试。
支持的型号(已知):
- TP Link Archer C50 V1
- TP链路N600 您可以在其他模型上进行测试,并在“问题”选项卡中报告它们。在
错误500和登录限制
TP-Link Web界面一次最多只支持1个用户登录(显然是出于安全原因),这是接收HTTP ERROR 500
的最常见原因。作为解决方法,您必须从所有其他设备/浏览器注销,然后重试。此外,您还可以运行router._get('logout')
故障排除/错误报告/贡献
- 如果遇到错误,可以使用路由器配置网页上的HTTP请求工具/监视器进行调试。另外,可能会有一个新问题
- 如果您想帮助改进软件包、请求功能或添加对更多模型的支持,请打开一个以[Feature request]或[Improvement]为前缀的问题
提交PRs和提交模板
您对本回购所作的减记和承诺必须包括以下内容:
- 类型:错误修复或增强
- 描述:关于提交实现了什么的简要描述
- 注意事项:(必要时向其他开发人员提供提示/建议)
变更日志
v1.0.0
- 第一次大发行!在
- 清理
五0.3.0
- 日志记录支持
- 添加
status_code
的新返回格式 - 性能优化:在命令后注销会话以最小化500个实例的错误
- 删除不必要的I/O
v0.2.1
- 添加带区控制开关
v0.2.0
- 引入内置功能!用于最常用任务的预定义命令,因此您不必手动计算有效负载。在
v0.1.3
- 修复pip部署错误
v0.1.2
- 修复pip导入错误
v0.1.1
- 删除AIOHTTP依赖项
v0.1.0
- Python包
- 项目
标签: