2014-09-12 12 views
2

Я хочу перезагрузить свой Fritz! Box 7390 с помощью wget. webinterface имеет форму перезагрузки, которая выглядит следующим образом:wget post form to reboot router

<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, добавив? ИСС = например в URL

+0

Ваша команда wget выглядит правильно. Не могли бы вы включить сетевого инспектора в свой браузер и попытаться перезагрузить маршрутизатор? Поделитесь информацией о пакете, который отправляется. Он должен показать, где находится проблема. – darnir

+0

Как включить инспектор сети в хроме? – user1685565

+0

Щелкните правой кнопкой мыши на странице, выберите «Проверить элемент», а затем перейдите на вкладку «Сеть». Затем нажмите кнопку сброса на веб-странице – darnir

ответ

2

Вы не можете просто POST для этого 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 

я создал небольшой скрипт, с некоторыми дополнительными проверками, которые вы можете найти hereYou можно найти полный сценарий, включая проверку здесь: http://git.io/v3zQs