Перейти к содержанию

Вопрос

Опубликовано

Привет, пытаюсь подключиться к API статистики http://192.168.1.1/ci , но keenetic не отдает данные:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.1/ci');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, 'admin:password');
$result = curl_exec($ch);

Авторизация проходит, но постоянно появляются какие-то ошибки, сейчас имею такое:

Цитата
HTTP/1.0 401 Unauthorized
  Server: Ag [47]
  WWW-Authenticate: Digest realm="ZyXEL Keenetic Giga", qop="auth", nonce="1c3086", algorithm=MD5
  Content-type: text/html
   
  HTTP/1.0 413 The request is too long
  Server: Ag [47]
  Set-Cookie: _authorized=admin; path=/
  Content-type: text/html

мне кажется какая-то проблема с тем, что нужно формировать POST запрос, но в чем именно не могу разобраться. В чем проблема?

Рекомендуемые сообщения

  • 1
Опубликовано (изменено)
В 24.08.2017 в 22:55, vitgan сказал:

Как вы это сделали и реализовали??? Умоляю, помогите мне сделать тоже самое на 4G III

Класс!

Можно собирать данные и отправлять в такой дашборд grafana.com

Удобнее всего запускать всё через docker-compose. Я пока сам ещё разбираюсь, система очень гибкая. Графики, плагины, можно делиться дашбордами))
Это целый стэк: сбор данных Telegraf + база данных InfluxDB + дашборды Grafana.

Сейчас, Telegraf из коробки не поддерживает сбор данных из XML. В Issues #1758 уже обсуждают добавление плагина. Вообще очень динамично развивается утилита. В принципе, отсутствие нужного плагина решается временным костылём с помощью любого своего скрипта завёрнутого в плагин exec.

Скрытый текст

image

 

Изменено пользователем Дмитрий Дубинин
опечатки
  • 0
Опубликовано

Мне кажется проходит, потому что если указать другие данные авторизации, тогда будет

HTTP/1.0 401 Unauthorized
Server: Ag [47]
WWW-Authenticate: Digest realm="ZyXEL Keenetic Giga", qop="auth", nonce="1c3608", algorithm=MD5
Content-type: text/html

HTTP/1.0 401 Unauthorized
Server: Ag [47]
WWW-Authenticate: Digest realm="ZyXEL Keenetic Giga", qop="auth", nonce="1c3608", algorithm=MD5
Content-type: text/html

причем, в первом случает первый заголовок такой же 

  HTTP/1.0 401 Unauthorized
  • 0
Опубликовано
В 05.08.2017 в 21:14, Le ecureuil сказал:

Скиньте пример тела POST-запроса, там должен быть валидный XML.

Плюс это не API статистики, а универсальное API. Какую именно команду вы шлете?

упс, я вообще никакие команды не слал, с горем пополам разобрался, убив 5 часов!

вот рабочий код, может кому-то пригодится

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.1/ci');
curl_setopt($ch, CURLOPT_POSTFIELDS, '<request id="0"><command name="show dyndns"><profile>_WEBADMIN</profile><name>ISP</name></command></request><request id="1"><command name="show interface stat"><name>ISP</name></command></request>');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, 'admin:pasword');
curl_exec($ch);

 

  • 0
Опубликовано
16 часов назад, ganzales сказал:

вот рабочий код, может кому-то пригодится

А как это выглядит на выходе, можете показать?

  • 0
Опубликовано (изменено)

 

В 08.08.2017 в 17:00, vitgan сказал:

А как это выглядит на выходе, можете показать?

на выходе XML

<packet>
    <response id="0">
        <dyndns>
            <type>dyndns</type>
            <profile>_WEBADMIN</profile>
            <status>success</status>
            <domain>xxx.dyndns.org</domain>
            <message>Updated sucessfully</message>
            <interface>ISP</interface>
        </dyndns>
    </response>
    <response id="1">
        <rxpackets>124688054</rxpackets>
        <rxbytes>151749098416</rxbytes>
        <rxerrors>0</rxerrors>
        <rxdropped>0</rxdropped>
        <txpackets>60460877</txpackets>
        <txbytes>17194898109</txbytes>
        <txerrors>0</txerrors>
        <txdropped>0</txdropped>
    </response>
</packet>
В 08.08.2017 в 12:44, Le ecureuil сказал:

@ganzales а почему было сразу не спросить здесь у разработчиков?

По началу показалось просто, а получилось как всегда. Планирую написать статистику по использованию канала. Как понимаю, это API используется для внутренних целей, кстати, у него есть документация? Тут все понятно - можно получить определенные данные, в принципе таким же макаром можно и управляющие команды посылать, но сейчас задумался, а может есть полноценное API для управления роутером?

Изменено пользователем ganzales
  • 0
Опубликовано

Это и есть полноценное API для управления роутером.

Все команды CLI и в Web преобразуются в XML  и в таком виде отправляются в роутер для обработки. Результат тоже приходит в XML.

Узнать все API можно посмотрев cli guide - там у каждой команды есть XML-представление (хоть оно и не описано, но можно попробовать восстановить).

  • 0
Опубликовано
4 часа назад, utya сказал:

ftp://ftp.zyxel.com/USG40/cli_reference_guide/USG40_1.pdf
это можно считать cli guide?

И еcли можно,приведите пример одно команды на bash

USG вообще никаким боком не относится к Keenetic.

Ровно как и bash.

Правильные cli guide вот:

http://files.keenopt.ru/cli_manual/

В особенности прочтите главу 4 HTTP Core Interface.

  • 0
Опубликовано (изменено)

Выше был пример на php, но я хочу сделать на linux отправку rest api запросов с помощью curl вот и спросил про bash.

Спасибо за ссылку

Изменено пользователем utya
  • 0
Опубликовано

С версии 2.08 есть Rest API интерфейс, скоро добавим его описание в документацию. Как он работает, можно посмотреть через консоль браузера. Обращения идут не через /ci, а через /rci. Если не разберётесь, спрашивайте.

Впрочем, /ci пока тоже не планируем отключать.

  • 0
Опубликовано (изменено)

Спешу поделиться своим разочарованием. Только, казалось бы, я дописал свою статистику, как заметил некоторую странность. Как мне показалось, трафик считается не правильно. Искал проблему у себя, пока не решил замерить показания счетчика роутера и вот что могу сказать. Ну во-первых "[rxbytes] => 179473229879", это не "Принято:179.47 Гбайт", разница как бы  существенная с 167.14. Во-вторых показания совершенно не совпадают с реальностью, пробовал загружать 500Мб по ftp, результат - 70142 байт, скачивание - 127196, скорость в админке соответствующая, что-то вроде 0.51 кбит/c, хотя в реале 4Мбит, очень жаль, или я что-то делаю не так?

Изменено пользователем ganzales
  • 0
Опубликовано
23 часа назад, ganzales сказал:

Спешу поделиться своим разочарованием. Только, казалось бы, я дописал свою статистику, как заметил некоторую странность. Как мне показалось, трафик считается не правильно. Искал проблему у себя, пока не решил замерить показания счетчика роутера и вот что могу сказать. Ну во-первых "[rxbytes] => 179473229879", это не "Принято:179.47 Гбайт", разница как бы  существенная с 167.14. Во-вторых показания совершенно не совпадают с реальностью, пробовал загружать 500Мб по ftp, результат - 70142 байт, скачивание - 127196, скорость в админке соответствующая, что-то вроде 0.51 кбит/c, хотя в реале 4Мбит, очень жаль, или я что-то делаю не так?

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

В 2.09 для всех поддерживаемых в любом виде устройств были выверены все счетчики, там должно считать правильно.

  • 0
Опубликовано
10 минут назад, Le ecureuil сказал:

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

В 2.09 для всех поддерживаемых в любом виде устройств были выверены все счетчики, там должно считать правильно.

Ну это понятно, буду с этим жить)) благо я планирую покупку нового Ultra или Giga, единственное осталось дождаться выхода, как раз 2 года прошло.

  • 0
Опубликовано
31 минуту назад, ganzales сказал:

мега статистика

Как вы это сделали и реализовали??? Умоляю, помогите мне сделать тоже самое на 4G III

Класс!

  • 0
Опубликовано

vitgan, спасибо за оценку!

Сорри, опенсорс решения, к сожаления, у меня нет - все на коленке, по-домашнему :D  В качестве сервера у меня выступает андроид телефон 2011 года)) - удивительно утилитарная железка, кинетик, кстати, такой же. Вообще это же самое можно и на самом роутере осуществить, когда сидел на прошивке 1.00 у меня был поднят вебсервер, но при прошивке на 2 версию, естественно все отвалилось. Каждый раз разбираться в этом - времени нет, поэтому появилась идея поднять все на старом телефоне один раз и забыть - всегда хотел себе иметь мини-сервер, так на телефоне это еще и автономность, резервный канал, СМС и прочее, короче много плюшек, и как выяснилось настраивается достаточно просто + производительно на порядок выше. Ой, что-то меня занесло. Ну а что касается статистики, тот тут ничего особо сложного нет, разве что нужно определенными навыками обладать - немного оттуда, немного отсюда)) В общем и целом, я снимаю ежеминутно показания со счетчиков роутера через php curl запросом с авторизацией (код выше приводил), произвожу расчеты и храню данные в mysql, графики уже строю js-ом, вкратце так, если что-то конкретно интересует могу подробнее расписать.

вот еще парочка примеров мониторинга на моем могучем сервере, тут, например, видно что китайская камера опять зависла

Скрытый текст

wnT0edoaT2uNfUsGcINZ2Q.png

а вот статистика использования ноутбука

Скрытый текст

77cUMmj8TuaEQTa25f5naQ.png

 

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.