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)
FunctionArgsDescriptionReturn
^{}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 LANList of strings
^{}Gets list of connected clients (MAC Address) including DHCP & permanent leases, across both wifi and LANList of strings
^{}Gets details of wlans (by internal wlan name) including guest network wlans on both bandsDict of Dicts
^{}Gets list of ssids including guest network wlans on both bandsList of strings
^{}ssid -> ^{}Gets WPA2 PSK of specified SSIDstring
^{}ssid -> ^{} password -> ^{}Sets new WPA2 PSK of specified SSIDboolean
^{}ssid -> ^{} state -> ^{}Enables/disables SSID broadcast of the specified SSIDboolean
^{}band -> ^{} or ^{} state -> ^{}Enables/disables specified bandboolean
^{}Returns whether or not the device is powered onboolean
^{}Does what it says on the canboolean
^{}Does what it says on the canboolean

内部函数:_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包

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用Logback和Lombok   Java中的线程本地初始化?   java如何使用XPATH从XML中获取值   java如何从谷歌扳手的变异中获得合适的数据类型值?   java在完成autoIt执行后将控制权返回Selenium测试执行   java在Android Studio中添加新资源文件夹的正确方法?   java矩阵模板类   GetSharedReferences上的java Android SharedReferences NullPointerException   java意外的Maven依赖项中介行为   oop java:确保该类型只有一个实例   java我应该使用什么作为null的哈希代码?   http使用单个操作下载多个文件   java GetMappings在弹性搜索7中发生了变化。十、   java Swing:在generalpath上检测鼠标移动   无验证的java jsoup解析   twitter(安卓应用)中的java无效令牌访问格式   使用HttpServletRequest创建的JSESSIONID cookie的java设置路径。getSession(真)   阿里云Java捕获和提升事件中的错误处理   从节点调用java程序。js应用程序