ganzales Posted August 4, 2017 Share Posted August 4, 2017 Привет, пытаюсь подключиться к 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 запрос, но в чем именно не могу разобраться. В чем проблема? Quote Link to comment Share on other sites More sharing options...
1 Дмитрий#33 Posted July 28, 2018 Share Posted July 28, 2018 (edited) В 24.08.2017 в 22:55, vitgan сказал: Как вы это сделали и реализовали??? Умоляю, помогите мне сделать тоже самое на 4G III Класс! Можно собирать данные и отправлять в такой дашборд grafana.com Удобнее всего запускать всё через docker-compose. Я пока сам ещё разбираюсь, система очень гибкая. Графики, плагины, можно делиться дашбордами)) Это целый стэк: сбор данных Telegraf + база данных InfluxDB + дашборды Grafana. Сейчас, Telegraf из коробки не поддерживает сбор данных из XML. В Issues #1758 уже обсуждают добавление плагина. Вообще очень динамично развивается утилита. В принципе, отсутствие нужного плагина решается временным костылём с помощью любого своего скрипта завёрнутого в плагин exec. Скрытый текст Edited July 28, 2018 by Дмитрий Дубинин опечатки Quote Link to comment Share on other sites More sharing options...
0 KorDen Posted August 4, 2017 Share Posted August 4, 2017 Авторизация точно проходит? Вроде как для digest-авторизации данного кода недостаточно, см. например https://stackoverflow.com/questions/31892143/php-curl-get-post-digest-authentication Quote Link to comment Share on other sites More sharing options...
0 ganzales Posted August 4, 2017 Author Share Posted August 4, 2017 Мне кажется проходит, потому что если указать другие данные авторизации, тогда будет 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 Quote Link to comment Share on other sites More sharing options...
0 Le ecureuil Posted August 5, 2017 Share Posted August 5, 2017 Скиньте пример тела POST-запроса, там должен быть валидный XML. Плюс это не API статистики, а универсальное API. Какую именно команду вы шлете? 1 Quote Link to comment Share on other sites More sharing options...
0 ganzales Posted August 7, 2017 Author Share Posted August 7, 2017 В 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); Quote Link to comment Share on other sites More sharing options...
0 Le ecureuil Posted August 8, 2017 Share Posted August 8, 2017 @ganzales а почему было сразу не спросить здесь у разработчиков? Quote Link to comment Share on other sites More sharing options...
0 vitgan Posted August 8, 2017 Share Posted August 8, 2017 16 часов назад, ganzales сказал: вот рабочий код, может кому-то пригодится А как это выглядит на выходе, можете показать? Quote Link to comment Share on other sites More sharing options...
0 ganzales Posted August 9, 2017 Author Share Posted August 9, 2017 (edited) В 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 для управления роутером? Edited August 9, 2017 by ganzales Quote Link to comment Share on other sites More sharing options...
0 Le ecureuil Posted August 11, 2017 Share Posted August 11, 2017 Это и есть полноценное API для управления роутером. Все команды CLI и в Web преобразуются в XML и в таком виде отправляются в роутер для обработки. Результат тоже приходит в XML. Узнать все API можно посмотрев cli guide - там у каждой команды есть XML-представление (хоть оно и не описано, но можно попробовать восстановить). Quote Link to comment Share on other sites More sharing options...
0 utya Posted August 20, 2017 Share Posted August 20, 2017 ftp://ftp.zyxel.com/USG40/cli_reference_guide/USG40_1.pdf это можно считать cli guide? И еcли можно,приведите пример одно команды на bash Quote Link to comment Share on other sites More sharing options...
0 Le ecureuil Posted August 20, 2017 Share Posted August 20, 2017 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. Quote Link to comment Share on other sites More sharing options...
0 utya Posted August 20, 2017 Share Posted August 20, 2017 (edited) Выше был пример на php, но я хочу сделать на linux отправку rest api запросов с помощью curl вот и спросил про bash. Спасибо за ссылку Edited August 20, 2017 by utya Quote Link to comment Share on other sites More sharing options...
0 ndm Posted August 20, 2017 Share Posted August 20, 2017 С версии 2.08 есть Rest API интерфейс, скоро добавим его описание в документацию. Как он работает, можно посмотреть через консоль браузера. Обращения идут не через /ci, а через /rci. Если не разберётесь, спрашивайте.Впрочем, /ci пока тоже не планируем отключать. 2 Quote Link to comment Share on other sites More sharing options...
0 ganzales Posted August 23, 2017 Author Share Posted August 23, 2017 (edited) Спешу поделиться своим разочарованием. Только, казалось бы, я дописал свою статистику, как заметил некоторую странность. Как мне показалось, трафик считается не правильно. Искал проблему у себя, пока не решил замерить показания счетчика роутера и вот что могу сказать. Ну во-первых "[rxbytes] => 179473229879", это не "Принято:179.47 Гбайт", разница как бы существенная с 167.14. Во-вторых показания совершенно не совпадают с реальностью, пробовал загружать 500Мб по ftp, результат - 70142 байт, скачивание - 127196, скорость в админке соответствующая, что-то вроде 0.51 кбит/c, хотя в реале 4Мбит, очень жаль, или я что-то делаю не так? Edited August 23, 2017 by ganzales Quote Link to comment Share on other sites More sharing options...
0 Le ecureuil Posted August 24, 2017 Share Posted August 24, 2017 23 часа назад, ganzales сказал: Спешу поделиться своим разочарованием. Только, казалось бы, я дописал свою статистику, как заметил некоторую странность. Как мне показалось, трафик считается не правильно. Искал проблему у себя, пока не решил замерить показания счетчика роутера и вот что могу сказать. Ну во-первых "[rxbytes] => 179473229879", это не "Принято:179.47 Гбайт", разница как бы существенная с 167.14. Во-вторых показания совершенно не совпадают с реальностью, пробовал загружать 500Мб по ftp, результат - 70142 байт, скачивание - 127196, скорость в админке соответствующая, что-то вроде 0.51 кбит/c, хотя в реале 4Мбит, очень жаль, или я что-то делаю не так? Устройство неподдерживаемое, потому даже разбираться лень. Скорее всего так и придется жить с этим. В 2.09 для всех поддерживаемых в любом виде устройств были выверены все счетчики, там должно считать правильно. Quote Link to comment Share on other sites More sharing options...
0 ganzales Posted August 24, 2017 Author Share Posted August 24, 2017 10 минут назад, Le ecureuil сказал: Устройство неподдерживаемое, потому даже разбираться лень. Скорее всего так и придется жить с этим. В 2.09 для всех поддерживаемых в любом виде устройств были выверены все счетчики, там должно считать правильно. Ну это понятно, буду с этим жить)) благо я планирую покупку нового Ultra или Giga, единственное осталось дождаться выхода, как раз 2 года прошло. Quote Link to comment Share on other sites More sharing options...
0 ganzales Posted August 24, 2017 Author Share Posted August 24, 2017 мега статистика Скрытый текст Quote Link to comment Share on other sites More sharing options...
0 vitgan Posted August 24, 2017 Share Posted August 24, 2017 31 минуту назад, ganzales сказал: мега статистика Как вы это сделали и реализовали??? Умоляю, помогите мне сделать тоже самое на 4G III Класс! Quote Link to comment Share on other sites More sharing options...
0 ganzales Posted August 24, 2017 Author Share Posted August 24, 2017 vitgan, спасибо за оценку! Сорри, опенсорс решения, к сожаления, у меня нет - все на коленке, по-домашнему В качестве сервера у меня выступает андроид телефон 2011 года)) - удивительно утилитарная железка, кинетик, кстати, такой же. Вообще это же самое можно и на самом роутере осуществить, когда сидел на прошивке 1.00 у меня был поднят вебсервер, но при прошивке на 2 версию, естественно все отвалилось. Каждый раз разбираться в этом - времени нет, поэтому появилась идея поднять все на старом телефоне один раз и забыть - всегда хотел себе иметь мини-сервер, так на телефоне это еще и автономность, резервный канал, СМС и прочее, короче много плюшек, и как выяснилось настраивается достаточно просто + производительно на порядок выше. Ой, что-то меня занесло. Ну а что касается статистики, тот тут ничего особо сложного нет, разве что нужно определенными навыками обладать - немного оттуда, немного отсюда)) В общем и целом, я снимаю ежеминутно показания со счетчиков роутера через php curl запросом с авторизацией (код выше приводил), произвожу расчеты и храню данные в mysql, графики уже строю js-ом, вкратце так, если что-то конкретно интересует могу подробнее расписать. вот еще парочка примеров мониторинга на моем могучем сервере, тут, например, видно что китайская камера опять зависла Скрытый текст а вот статистика использования ноутбука Скрытый текст Quote Link to comment Share on other sites More sharing options...
0 utya Posted October 21, 2017 Share Posted October 21, 2017 Добрый день, скажите с помощью /rci можно получить ip адрес ISP? прошивки 2.10 и 2.11. Quote Link to comment Share on other sites More sharing options...
0 Le ecureuil Posted October 22, 2017 Share Posted October 22, 2017 В 10/21/2017 в 11:48, utya сказал: Добрый день, скажите с помощью /rci можно получить ip адрес ISP? прошивки 2.10 и 2.11. http://192.168.1.1/rci/show/interface?name=ISP 1 1 Quote Link to comment Share on other sites More sharing options...
Question
ganzales
Привет, пытаюсь подключиться к API статистики http://192.168.1.1/ci , но keenetic не отдает данные:
Авторизация проходит, но постоянно появляются какие-то ошибки, сейчас имею такое:
мне кажется какая-то проблема с тем, что нужно формировать POST запрос, но в чем именно не могу разобраться. В чем проблема?
Link to comment
Share on other sites
21 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.