почтовая форма 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

445   1  

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

    Ничего не найдено.