отправка HTML-запроса в RESTART ROUTER через терминал на CURL завершается неудачно

Я прочитал на этой странице, как перезапустить маршрутизатор, используя curl .
Я получил команду для своего роутера

http://192.168.1.1/Forms/tools_system_1?restoreFlag=0&Restart=RESTART

Она работает, когда я помещаю ее в адресную строку браузера, но когда я использую curl

curl -u admin:mypass 'http://192.168.1.1/Forms/tools_system_1?restoreFlag=0&Restart=RESTART'
[ 1117] Это не работает.
на экране терминала нет вывода.
РЕДАКТИРОВАТЬ
Результат -

curl -i -u admin:mypass 'http://192.168.1.1/Forms/tools_system_1?restoreFlag=0&Restart=RESTART'

дает это -

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="450TC1"
Content-Type: text/html
Transfer-Encoding: chunked
Server: RomPager/4.07 UPnP/1.0
EXT:

<html>
<head>
<title>Protected Object</title></head><body>
<h1>Protected Object</h1>This object on the RomPager server is protected

Вывод

curl --verbose -u admin:mypass 'http://192.168.1.1/Forms/tools_system_1?restoreFlag=0&Restart=RESTART'

Дает это -

* About to connect() to 192.168.1.1 port 80 (#0)
*   Trying 192.168.1.1... connected
* Server auth using Basic with user 'admin'
> GET /Forms/tools_system_1?restoreFlag=0&Restart=RESTART HTTP/1.1
> Authorization: Basic YWRtaW46c2hhcmluZ2FuMDA3
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: 192.168.1.1
> Accept: */*
> 
< HTTP/1.1 303 See Other
< Location: http://192.168.1.1/progress.htm
< Content-Length: 0
< Server: RomPager/4.07 UPnP/1.0
< EXT:
< 
* Connection #0 to host 192.168.1.1 left intact
* Closing connection #0

Но curl -u admin:mypass 192.168.1.1 возвращает это. Работает отлично!

<html>
<head>
<title>
</title><meta http-equiv="Content-Type" content="text/html; charset=
iso-8859-1">
<meta http-equiv=Content-Script-Type content=text/javascript>
<meta http-equiv=Content-Style-Type content=text/css>
</head><frameset rows="65,75,*" framespacing="0" border="0" frameborder="0">
<frame name="header" noresize src="status.html" marginwidth="0" marginheight="0">
<frame name="navigation" noresize src="navigation-status.html" marginwidth="0" marginheight="0">
<frame name="main" noresize src="../status/status_deviceinfo.htm" marginwidth="0" marginheight="0">
</frameset><noframes>
</noframes>
</html>
1
задан 11 April 2014 в 02:37

2 ответа

Придерживайтесь того, что работает для вас. Исходя из вашего предыдущего комментария, возможно, в вашем пароле есть какой-то специальный символ; попробуйте завернуть свои учетные данные в кавычки, например, -u "admin:pass".

Если Wget работает, используйте его вместо этого; Вы можете использовать переключатель -O - для перенаправления вывода на консоль (аналогично поведению по умолчанию в Curl) вместо сохранения файла.

Также может работать отправка данных в виде запроса POST, например:

curl -u 'admin:mypass' --form 'restoreFlag=0&Restart=RESTART' 'http://192.168.1.1/Forms/tools_system_1'

Также обратите внимание, что в вашем выводе маршрутизатор возвратил другое сообщение для флагов -i и --verbose - 401 Unauthorized для [ 116] и 303 See Other для --verbose. Последнее, я полагаю, приведет к успешному перезапуску. Я не думаю, что флаги связаны с поведением маршрутизатора, это кажется совершенно случайным.

В любом случае, я не думаю, что этот вопрос является каким-либо конкретным для Ubuntu, я рекомендую задать его в SuperUser .

0
ответ дан 11 April 2014 в 02:37

В то же время я пытался перезагрузить роутер, поэтому решил сделать поиск, а не изобретать велосипед, и приземлился здесь.

Я нашел что-то интересное, просто запустите это, просто запустите это, ваш маршрутизатор будет перезагружен.

curl --verbose -u user:pass 'http://192.168.1.1/progress.htm'

или

curl --verbose -u user:pass 'http://192.168.1.1/progress.htm' -e 'http://192.168.1.1/maintenance/tools_system.htm'

или

wget -v -F -S --http-user=user --http-password=pass --ignore-length --referer="http://admin:adminnew@192.168.1.1/maintenance/tools_system.htm" "http://192.168.1.1/progress.htm" -O "info.output.file"

вы может удалить -v и -S из команды wget

, иногда curl завершается неудачно при аутентификации случайным образом.

0
ответ дан 11 April 2014 в 02:37

Другие вопросы по тегам:

Похожие вопросы: