March 26, 2018

教研室有台tplink不知道怎么回事,总是自己掉线,还是很奇葩的那种掉线,明明ip和网关都变0.0.0.0了,还是显示在线,导致自带的自动登陆功能不起作用。 之前都是手动check和重新登陆,实在是浪费生命,于是乎来个定时脚本搞定吧,反正教研室有24小时online的服务器。 整个任务大体上分为三个步骤: 分析tplink管理API 编写管理脚本 使用systemd timer定时启动脚本(当然cron也是可以的,但是作为Archer,怎么能不用最新技术~) 1. 分析tplink管理API 首先登陆http://192.168.0.1 (替换成自己的管理地址,下同),教研室的这个型号是WR842N,登陆界面及其简单,就一个密码框。一开始我以为是把密码用明文或者hash一下post给路由,但是填写密码后发现没有post数据,百思不得其解,后来几番搜索,找到一篇分析的好文,这篇文章不仅告诉了如何登陆,而且还分析的很详细。想了解详情的请参见这篇blog。至于代码,我做了简化,直接把chrome里监控到的header粘进代码发送,简单粗暴~ 2. 编写管理脚本 重点来了,先贴代码: # -*- coding: utf-8 -*- import urllib.request import sys progArgs = [“get_status”, “login”] ip = “192.168.0.1” […]