Помогите открыть URL через консоль [РЕШЕНО]

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
VladVol
Сообщения: 142
ОС: KUbuntu

Помогите открыть URL через консоль [РЕШЕНО]

Сообщение VladVol »

Доброе время суток! Есть некая IP камера, с которой нужно захватывать rtsp поток. Захват производится через ffmpeg, но есть одно но. В ffmpeg не работает авторизация, выдает ошибку 401. В камере можно разрешать анонимный захват и запрещать, оставлять камеру открытой для всех не вариант. Было найдено решение перед началом захвата разрешать анонимный просмотр/захват, а после захвата доступ закрывать. Делается это все одной строкой URL:

Код: Выделить всё

http://192.168.0.100/goform/usermanage?cmd=set&user.name=cam&user.password=cam&anonymous.enable=0

В ответ должен получить просто страницу с надписью успешно или нет.
Но вставить эту строку в sh скрипт не выходит, например, lynx спотыкается на символе "&", пробовал его экранировать через "\", чуть-чуть помогает, но у lynx все равно не получается авторизироваться. Через любой браузер, конечно с ГУИ, эта строка работает.
Прошу помощи или совета!! Очень нужно сделать, а я даже не знаю где искать решение.
Заранее благодарен!
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение SLEDopit »

Код: Выделить всё

wget -qO /dev/null "http://192.168.0.100/goform/usermanage?cmd=set&user.name=cam&user.password=cam&anonymous.enable=0"
## для отладки -q можно убрать
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
VladVol
Сообщения: 142
ОС: KUbuntu

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение VladVol »

SLEDopit писал(а):
07.12.2013 16:39

Код: Выделить всё

wget -qO /dev/null "http://192.168.0.100/goform/usermanage?cmd=set&user.name=cam&user.password=cam&anonymous.enable=0"
## для отладки -q можно убрать

Спасибо за ответ, не помогло

--2013-12-07 16:03:34-- http://192.168.0.100/goform/usermanage?cmd...nymous.enable=0
Connecting to 192.168.0.100:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authorization failed.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение SLEDopit »

VladVol писал(а):
07.12.2013 16:04
Через любой браузер, конечно с ГУИ, эта строка работает.
В этом любом браузере вы до этого авторизовывались на данном ресурсе?
Попробуйте открыть приватную вкладку в том же firefox'e и посмотреть. Ну и ещё у wget'a есть отличные опции --password и --user. Возможно, они могут вам помочь. Подробнее в man wget.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
VladVol
Сообщения: 142
ОС: KUbuntu

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение VladVol »

SLEDopit писал(а):
07.12.2013 20:27
VladVol писал(а):
07.12.2013 16:04
Через любой браузер, конечно с ГУИ, эта строка работает.
В этом любом браузере вы до этого авторизовывались на данном ресурсе?
Попробуйте открыть приватную вкладку в том же firefox'e и посмотреть. Ну и ещё у wget'a есть отличные опции --password и --user. Возможно, они могут вам помочь. Подробнее в man wget.


К сожаления сейчас нет прямого доступа к камере, так что проверить через приватную вкладку не смогу. Доступ только по ssh через сервер наблюдения.
wget не помог, даже с указанием пользователя и пароля (((
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение SLEDopit »

VladVol писал(а):
07.12.2013 22:06
К сожаления сейчас нет прямого доступа к камере, так что проверить через приватную вкладку не смогу. Доступ только по ssh через сервер наблюдения.
Можно пробросить ssh туннель. (:

Код: Выделить всё

ssh -CND localhost:3128 remote_server
ну и в браузере указать socks proxy : localhost:3128. А потом открывать.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение drBatty »

VladVol писал(а):
07.12.2013 16:04
lynx спотыкается на символе "&"

что-то вы делаете не так. У меня не спотыкается.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
VladVol
Сообщения: 142
ОС: KUbuntu

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение VladVol »

drBatty писал(а):
08.12.2013 18:24
VladVol писал(а):
07.12.2013 16:04
lynx спотыкается на символе "&"

что-то вы делаете не так. У меня не спотыкается.

Можете показать какую строку вводили вы?

У меня вот такя хрень в ответ:

Код: Выделить всё

ynx http://192.168.0.100/goform/usermanage?cmd=set&user.name=cam&user.password=cam&anonymous.enable=0
[1] 14937
[2] 14938
[3] 14939
-bash: user.password=cam: command not found
-bash: user.name=cam: command not found
-bash: anonymous.enable=0: command not found
[2]-  Exit 127                user.name=cam
[3]+  Exit 127                user.password=cam
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение drBatty »

VladVol писал(а):
08.12.2013 21:26
У меня вот такя хрень в ответ:

попробуйте

$

lynx "http://unixforum.org/index.php?showtopic=136009&view=findpost&p=1252511"


вы кавычки забыли.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
VladVol
Сообщения: 142
ОС: KUbuntu

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение VladVol »

drBatty писал(а):
08.12.2013 22:06
VladVol писал(а):
08.12.2013 21:26
У меня вот такя хрень в ответ:

попробуйте

$

lynx "http://unixforum.org/index.php?showtopic=136009&view=findpost&p=1252511"


вы кавычки забыли.


Вы правы!
Но логин и пароль не хочет принимать. Ребусы)
Спасибо сказали:
VladVol
Сообщения: 142
ОС: KUbuntu

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение VladVol »

VladVol писал(а):
11.12.2013 12:06
drBatty писал(а):
08.12.2013 22:06
VladVol писал(а):
08.12.2013 21:26
У меня вот такя хрень в ответ:

попробуйте

$

lynx "http://unixforum.org/index.php?showtopic=136009&view=findpost&p=1252511"


вы кавычки забыли.


Вы правы!
Но логин и пароль не хочет принимать. Ребусы)


Даже если использовать опцию "-auth=login:pass", все равно авторизация не проходит. Вообще ничего не понимаю
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение drBatty »

VladVol писал(а):
11.12.2013 12:06
Но логин и пароль не хочет принимать.

а вот с этим -- сложнее. В логине/пароле могут быть какие-то не ASCII символы (и даже просто всякие восклицательные знаки), преобразование которых нетривиально. Есть два решения:

1. попробовать передавать специальные символы через процент. Типа так:

Код: Выделить всё

http://lurkmore.to/%D0%A4%D0%B0%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D0%BA#Not_Invented_Here

браузеры делают это автоматом.

2. использовать специальные ЯП, например можно php использовать. Там с этим вопросом получше. Лучше, чем в командной строке и lynx/wget. Это удобно тем, что для авторизации одного запроса маловато. Нужно отправить логин/пароль, принять куку, а потом уже куку юзать. Что-бы всё как у людей. Камеру-то вашу надо думать для людей делали... Ну вот и ставьте какой-нить плагин к браузеру(например Web Develop для FF), смотрите что и как там передаётся, а потом реализовывайте. На php это проще всего. На bash+wget тоже можно, но довольно запарно. Конечно можно и на perl/C++/brainfuck, если эти ЯП вам знакомы.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
VladVol
Сообщения: 142
ОС: KUbuntu

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение VladVol »

drBatty писал(а):
11.12.2013 12:24
VladVol писал(а):
11.12.2013 12:06
Но логин и пароль не хочет принимать.

а вот с этим -- сложнее. В логине/пароле могут быть какие-то не ASCII символы (и даже просто всякие восклицательные знаки), преобразование которых нетривиально. Есть два решения:

1. попробовать передавать специальные символы через процент. Типа так:

Код: Выделить всё

http://lurkmore.to/%D0%A4%D0%B0%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D0%BA#Not_Invented_Here

браузеры делают это автоматом.

2. использовать специальные ЯП, например можно php использовать. Там с этим вопросом получше. Лучше, чем в командной строке и lynx/wget. Это удобно тем, что для авторизации одного запроса маловато. Нужно отправить логин/пароль, принять куку, а потом уже куку юзать. Что-бы всё как у людей. Камеру-то вашу надо думать для людей делали... Ну вот и ставьте какой-нить плагин к браузеру(например Web Develop для FF), смотрите что и как там передаётся, а потом реализовывайте. На php это проще всего. На bash+wget тоже можно, но довольно запарно. Конечно можно и на perl/C++/brainfuck, если эти ЯП вам знакомы.


Идею понял, буду искать примеры на php, хотя со всех приведенных Вами языков мне знаком только brainfuck))
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение drBatty »

VladVol писал(а):
11.12.2013 16:17
мне знаком только brainfuck

это я так пошутил. Не нужно тут C++ и прочего. Php осилить проще всего.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20794
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение Bizdelnick »

Попробуйте curl, у него никаких проблем с аутентификацией сроду не было.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
VladVol
Сообщения: 142
ОС: KUbuntu

Re: Помогите открыть URL через консоль [РЕШЕНО]

Сообщение VladVol »

Bizdelnick писал(а):
11.12.2013 17:13
Попробуйте curl, у него никаких проблем с аутентификацией сроду не было.

СПАСИБО!!!!! Пошло как дети в школу!!

Код: Выделить всё

curl -u cam:cam "http://192.168.0.100/goform/usermanage?cmd=set&user.name=cam&user.password=cam&anonymous.enable=1"
Спасибо сказали:
Ответить