项目地址: https://github.com/hwding/themis-von-wifi首先设想一下这个情境: 端午前夕, 大学宿舍中A\B\C\D四个人, A和B明天就要和同学去旅游了, 因此B在疯狂地用迅雷囤积电影, 然而无所事事的屌丝C正在某酷上看游戏视频. 宿舍网速 ...
项目地址: https://github.com/hwding/themis-von-wifi
首先设想一下这个情境: 端午前夕, 大学宿舍中A\B\C\D四个人, A和B明天就要和同学去旅游了, 因此B在疯狂地用迅雷囤积电影, 然而无所事事的屌丝C正在某酷上看游戏视频. 宿舍网速的极限在2.8MB/s, B的迅雷会员离线+加速通道全开, 导致C的视频缓冲速度只有12KB/s( <-- 没错这个人就是我啦, 抓狂中...), 而A和D仅仅再用手机刷些网页, 但是速度极慢以至于到了严重影响体验的程度.
除了B其余人不爽中...
通过分析我们可以发现, B与C对网速具有同样的高要求, 但是速度分配的结果极不公平, 并且B与C的网速和几乎占满极限网速从而导致A和D的网页浏览之类的低速操作也难以及时完成.因此本小白希望能够在出现高需求竞争的时候公平地分配网速, 同时也保证其他低需求接入点的基础速度.
以上就是本小白的困境与设想, 现在我们来看一看如何简单地实现.
项目地址: https://github.com/hwding/themis-von-wifi (WiFi正义之神!), 编码水平有限, 有更好的想法与算法上的建议欢迎共同开发!
预览
如果想控制接入点的限速, 我们必须首先研究后台控制页面的登入方式.
本小白宿舍使用TP-LINK TL-WR842N, 登陆界面是这样的
现在使用Firefox的开发人员工具看一看访问后台需要哪些文件我们重新刷新一下页面
js和css页面引入眼帘. 我们再来尝试登录一下, 看一看登录凭据的格式
登录时填写的密码被前端的js脚本加密了, 我们必须找到其中的加密算法
(省略一万字...)加密算法在classs.js文件中, 我们将此文件从路由端下载下来后, 拖出其中的 this.securityEncode 和 this.orgAuthPwd 两个函数, 把明文密码传进去然后拿到加密后的密文
1 ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); 2 ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("javascript"); 3 scriptEngine.put("a", router_background_password); 4 String functionAlpha = extractFunctionFromJSFile("this.securityEncode"); 5 String functionBeta = extractFunctionFromJSFile("this.orgAuthPwd"); 6 try { 7 scriptEngine.eval(functionAlpha); 8 scriptEngine.eval(functionBeta); 9 scriptEngine.eval("result=this.orgAuthPwd(\""+ router_background_password +"\")");10 } catch (ScriptException e) {11 e.printStackTrace();12 System.exit(0);13 }14 PASSWORD_ENCRYPTED = scriptEngine.get("result").toString();
原标题:构思并制作聪明的WiFi动态限速器(WiFi正义之神, Oh yeah!)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。