почтовая форма wget, чтобы перезагрузить маршрутизатор
Я хочу перезапустить свой Фриц!Вставка 7390 с использованием wget.
Вебинтерфейс получил форму перезагрузки, которая выглядит следующим образом:
<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, добавив ?sid=пример для url
1 ответ:
Вы не можете просто отправить сообщение только на этот url. Сначала необходимо получить действительный идентификатор сеанса. Это можно сделать, выполнив запрос GET на
http://fritz.box/checklogin.luaи взяв его из значения заголовкаLOCATION. Затем вы можете использовать это для записи вhttp://fritz.box/system/reboot.lua, включая идентификатор сеанса.Вот минимальные шаги для его автоматизации:
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
Comments