我想用wget重启我的Fritz!Box 7390。 Web界面有一个重启表单,如下所示:
<form action="/system/reboot.lua" method="POST">
<div id="btn_form_foot">
<input type="hidden" name="sid" value="beb5683181c2ab9f">
<button type="submit" name="reboot">Neu starten</button>
</div>
</form>
我想提交此表单。到目前为止,我尝试过这样,但它似乎不起作用:
wget --post-data "sid=beb5683181c2ab9f" "http://fritz.box/system/reboot.lua"
每次加载页面时,sid似乎都会改变。
但是我不确定这是不是问题,因为我可以通过添加?sid = example到url来修复sid
答案 0 :(得分:2)
你不能单独张贴到该网址。您首先需要获得有效的会话ID。这可以通过在http://fritz.box/checklogin.lua
上执行GET请求并从LOCATION
标头值中获取它来完成。然后,您可以使用此功能发布到http://fritz.box/system/reboot.lua
,包括会话ID。
以下是实现自动化的最小步骤:
SID=$(curl -s -I "http://fritz.box/logincheck.lua" | grep -Fi Location | awk -F'[=]' '{print $2}')
SID=$(curl -s -i -H "Content-Type: application/x-www-form-urlencoded" -H "Origin: http://fritz.box" -H "Referer: http://fritz.box/system/reboot.lua\?sid\=$SID" --data "reboot=&sid=$SID" -L http://fritz.box/system/reboot.lua | grep -Fi Location | awk -F'[=]' '{print $2}')
curl -s http://fritz.box/reboot.lua?ajax=1&sid=$REBOOT_SID
我创建了一个带有一些额外检查的小脚本,你可以在这里找到你可以找到完整的脚本,包括检查:http://git.io/v3zQs
答案 1 :(得分:0)
建议当前软件(v7.20 +)的步骤是什么?
最好是受密码保护的路由器。
我尝试通过Chrome开发者工具信息将其更新为使用最近的路径。
它给出一个状态码200
和响应:{"reboot_state":"extern"}
。
但是没有重启。
Chrome开发者工具说,在用户界面中按下Restart
按钮时的网址是:
curl 'http://fritz.box/reboot.lua' \
-H 'Connection: keep-alive' \
-H 'Pragma: no-cache' \
-H 'Cache-Control: no-cache' \
-H 'User-Agent: Mozilla/5.0 (...) Chrome/86.0.4240.111 Safari/537.36' \
-H 'DNT: 1' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Accept: */*' \
-H 'Origin: http://fritz.box' \
-H 'Referer: http://fritz.box/' \
-H 'Accept-Language: en,en-US;q=0.9,nl;q=0.8,de;q=0.7,la;q=0.6' \
--data-raw 'ajax=1&sid=1fd4370b50b14b07&no_sidrenew=1&xhr=1&useajax=1' \
--compressed \
--insecure
({sid
在每次登录后明显改变)