【发布时间】:2022-01-08 17:01:56
【问题描述】:
问题
在夜间,我想关闭仅 WIFI 的 WLR-9500 路由器。我想使用我的 Synology NAS 中的 bash 脚本来完成此操作。不幸的是,我无法在我的路由器上安装 OpenWRT,也没有时间表可以在预定时间内打开和关闭 wifi。
到目前为止我做了什么
我一直在用 curl 命令摆弄很多东西,但还是无济于事。 我设法登录到路由器,并获取管理收音机开/关的页面,这个页面/框架(使用网络浏览器允许打开收音机)
来自路由器的页面框架 (html) 源代码如下所示:
<!DOCTYPE>
<html>
<head>
<script type="text/javascript" src="incjs.htm"></script>
<script type="text/javascript">
IncJs({init:INC_ADV_PAGE});
</script>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<script type="text/javascript">
var sysOPMode=0;
var enableRadio="";
function saveChanges()
{
return true;
}
$(document).ready(function() {
$.getJSON("/cgi-bin/wlan.cgi",{info:wlan_info.WEB_WLAN_BASIC,radio_idx:r_idx.R_24G},function (data){
enableRadio = data.WLANINFO.basicINFO[0].radio_enable;
if (data.WLANINFO.basicINFO[0].radio_enable==1)
getById("radioEnable").checked=true;
else
getById("radioDisable").checked=true;
});
})
</script>
</head>
<body style="background-image:none;background-color:transparent;">
<br><br>
<blockquote>
<p><script type="text/javascript">dw(showText(80))</script></p>
<form name="wirelessseting" method="post" action="submit.cgi">
<input type="hidden" name="submitpg" value="wlmain.html">
<br>
<table width="900px" border="0" cellspacing="2">
<tr>
<td style="font-weight:bold;"><script type="text/javascript">dw(showText(81))</script> :
<input type="radio" id="radioEnable" name="radioEnable" value="1" ><script type="text/javascript">dw(showText(76) + ' ')</script>
<input type="radio" id="radioDisable" name="radioEnable" value="0"><script type="text/javascript">dw(showText(88))</script> </td>
</tr>
</table>
<br>
<table width="100%" cellspacing="1">
<tbody><tr><td>
<div align="right">
<script type="text/javascript">dw('<input type="submit" value="'+showText(46)+'" onClick="return saveChanges()" width="105">')</script>
</script>
</div>
</td>
</tr></tbody>
</table>
</form>
</blockquote>
</body>
</html>
我已经尝试了 curl 命令的许多变化,但没有成功。一旦我得到这个 curl 命令(或 curl 命令序列?)正确,我很确定我会设法创建我的 bash 脚本,我也会把它放在这里。
我使用下面的 curl 语句测试我是否可以访问该页面,并且成功完成。虽然没有生成 cjar 文件,所以我猜没有生成 cookie。
curl --anyauth --cookie-jar cjar -u admin:xxxpassxxx -g http://192.168.178.1/wlmain.html
接下来我尝试像这样禁用收音机:
curl --anyauth -u admin:xxxpassxxx --cookie-jar cjar -F "radioEnable=0" http://192.168.178.1/wlmain.html
(以及该命令行的许多变体)
问题
我怎样才能从命令行使用例如卷曲?
【问题讨论】:
-
您可以使用wireshark检查启用wifi的请求。该请求很可能提交给
submit.cgi,但尚不清楚radioEnable=1是否是所需的全部参数。最好确定。 -
啊好主意...让我们看看发生了什么:)
-
或您喜欢的浏览器中的copy as curl 功能
标签: javascript html bash curl