tplink路由器怎么自己修改密码 修改tplink密码的教程分享给你( 二 )


填充密码及点击确定按钮的代码就可以这样写了 。
// 修改 WIFI 密码document.getElementById('hostWifiPwdBs').value = 'https://www.iketao.cn/2022/11/19/63247e1653b17681/password';// 点击保存document.getElementById('hostWifiSaveBs').click();

tplink路由器怎么自己修改密码 修改tplink密码的教程分享给你



tplink路由器怎么自己修改密码 修改tplink密码的教程分享给你


事情到这儿似乎结束了,真的吗?
不然,其实还有一个小坑!
当你点击保存按钮时,系统会弹出警告提示你是否真的确定更新密码 。
这个框挺讨厌的是吧,不过这也是程序通常的做法,确保用户没有误操作 。
好了,既然它出现了,那么我们就必须想办法处理它 。
打起精神,继续加油吧!
消灭警告提示框
当警告窗口出现后,我们就可以定位窗口中确定按钮的 id。
纳尼?没有 id ?
果然可怕的事情发生了,它居然没有 id ,那还怎么玩?
哎,别慌哈,我发现它有个 class ,是 subBtn ok ,这个 class 能不能用来定位呢?
还好答案是肯定的,不过需要用到 getElementsByClassName。
小伙伴们应该注意到了吧,是 Elements ,而不是 Element ,英文单词是复数 。
这就意味着,它是用来获取一组元素的,那么得到的结果就不是单个的而是多个的,所以结果是通过数组的形式来表达 。
OK,在这个页面中我们找不到第二个 class 是 subBtn ok 的标签元素来,所以这个确认按钮只能是数组的第一个成员了 。
那么代码应该是这个样子吧 。
// 关闭确认提示document.getElementsByClassName('subBtn ok')[0].click(); 用控制台可以测试一下代码是否正确 。

tplink路由器怎么自己修改密码 修改tplink密码的教程分享给你


完整参考代码及演示画面
由于考虑到诸多的程序问题(比如程序中断等),我们需要加入一些延迟、判断、比较等相应的代码用来完善整个程序 。
此处举例,比如每天自动修改密码,密码的算法由你自己决定,可简单亦可复杂,只要你自己能猜出来而别人不那么容易猜出来就行 。
还有其他一些需要考虑的问题,就由小伙伴们自行判断和完善代码吧 。
以下参考代码基本可以实现这样一些功能:
  • 自动登录管理页面
  • 每天自动填充密码并保存
  • 密码算法为固定字符串加当天日期(比如 Sysadm20210606 )
  • 循环判断密码是否过期,并可确保路由器离线后再次上线仍能执行修改密码的功能
完整代码下载:
下载链接:
https://pan.baidu.com/s/1rpV4vjiO8MmMUtmNDMQwDQ
提取码:<关注公众号,发送 000844>
将代码保存到油猴中,刷新路由器页面即可开始执行 。
关于油猴的操作,具体可以参考前文(本文开头有链接),也可以参考其他文章,此处暂不赘述 。
// ==UserScript==// TP-Link 路由器 型号 TL-WDR8661 测试通过// @name定时修改路由器 WIFI 密码// @namespacehttp://tampermonkey.net/// @version0.1// @description网管小贾的博客 / www.sysadm.cc// @author@网管小贾// @matchhttp://192.168.1.1/// @iconhttps://www.google.com/s2/favicons?domain=89.251// @grantnone// ==/UserScript==(function() {'use strict';// Your code here...//页面完全加载后运行window.onload=function autorun() {console.log('页面加载完毕,可以执行代码!!');Date.prototype.Format = function (fmt) {let o = {"M+": this.getMonth() + 1, //月份"d+": this.getDate(), //日"h+": this.getHours(), //小时"m+": this.getMinutes(), //分"s+": this.getSeconds(), //秒"q+": Math.floor((this.getMonth() + 3) / 3), //季度"S": this.getMilliseconds() //毫秒};if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));for (let k in o) {if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));}return fmt;};var currentDate = (new Date()).Format("yyyyMMdd");var checkDate = '';function changeWifi() {currentDate = (new Date()).Format("yyyyMMdd");if (currentDate != checkDate) {console.log('Different! - currentDate: ' + currentDate + ' | checkDate: ' + checkDate);setTimeout(function() {try {// 登录document.getElementById('lgPwd').value = 'https://www.iketao.cn/2022/11/19/63247e1653b17681/123456';document.getElementById('loginSub').click();}catch (e) {}setTimeout(function() {try {currentDate = (new Date()).Format("yyyyMMdd");// 定位“网络状态”首页画面document.getElementById('netStateMbtn').click();setTimeout(function() {try {// 避免重复修改if (document.getElementById('hostWifiPwdBs').value != 'Sysadm' + currentDate) {// 修改 WIFI 密码document.getElementById('hostWifiPwdBs').value = 'https://www.iketao.cn/2022/11/19/63247e1653b17681/Sysadm' + currentDate;// 保存document.getElementById('hostWifiSaveBs').click();// 关闭确认提示document.getElementsByClassName('subBtn ok')[0].click();setTimeout(function() {checkDate = currentDate;}, 1000);}}catch (e) {checkDate = '';}}, 1000);}catch (e) {checkDate = '';}}, 1000);}, 2000);} else {console.log('Same! - currentDate: ' + currentDate + ' | checkDate: ' + checkDate);}}var myVar;myVar = setInterval(changeWifi, 1 * 10 * 1000);// console.log(myVar);}})();

推荐阅读