Перейти до

Графики клиентов и Mikrotik NAS


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

  • 1 year later...

Nas Mikrotik + Кучаген

Доброго времени суток,  для отображения графиков через Кучаген по hotspot поправьте в  /usr/local/www/apache24/data/billing/api/libs/api.networking.php

от строки 1575. P.S. Ссылка на Bandwidthd http://NAS/graphs/queue/%3Chotspot%2D

КОД

 


// RouterOS graph model:
    if ($nastype == 'mikrotik') {
        // Get user's IP array:
        $alluserips = zb_UserGetAllIPs();
        $alluserips = array_flip($alluserips);
        if (!ispos($bandwidthd_url, 'pppoe')) {
// Generate graphs paths:
            $urls['dayr'] = $bandwidthd_url . '/' . $alluserips[$ip] . '/daily.gif';
            $urls['days'] = null;
            $urls['weekr'] = $bandwidthd_url . '/' . $alluserips[$ip] . '/weekly.gif';
            $urls['weeks'] = null;
            $urls['monthr'] = $bandwidthd_url . '/' . $alluserips[$ip] . '/monthly.gif';
            $urls['months'] = null;
            $urls['yearr'] = $bandwidthd_url . '/' . $alluserips[$ip] . '/yearly.gif';
            $urls['years'] = null;
        } else {
            $urls['dayr'] = $bandwidthd_url . $alluserips[$ip] . '>/daily.gif';
            $urls['days'] = null;
            $urls['weekr'] = $bandwidthd_url . $alluserips[$ip] . '>/weekly.gif';
            $urls['weeks'] = null;
            $urls['monthr'] = $bandwidthd_url . $alluserips[$ip] . '>/monthly.gif';
            $urls['months'] = null;
            $urls['yearr'] = $bandwidthd_url . $alluserips[$ip] . '>/yearly.gif';
            $urls['years'] = null;
        }
    } else {
        if (!ispos($bandwidthd_url, 'hotspot')) {
// Banwidthd graphs model:
            $urls['dayr'] = $bandwidthd_url . '/' . $ip . '-1-R.png';
            $urls['days'] = $bandwidthd_url . '/' . $ip . '-1-S.png';
            $urls['weekr'] = $bandwidthd_url . '/' . $ip . '-2-R.png';
            $urls['weeks'] = $bandwidthd_url . '/' . $ip . '-2-S.png';
            $urls['monthr'] = $bandwidthd_url . '/' . $ip . '-3-R.png';
            $urls['months'] = $bandwidthd_url . '/' . $ip . '-3-S.png';
            $urls['yearr'] = $bandwidthd_url . '/' . $ip . '-4-R.png';
            $urls['years'] = $bandwidthd_url . '/' . $ip . '-4-S.png';
        } else {
            // Get user's IP array:
            $alluserMacs = zb_getAllUsedMac();
            $alluserMacs = array_flip($alluserMacs);
            $alluserMacs = mb_strtoupper($alluserMacs[$ip]);
            $urls['dayr'] = $bandwidthd_url . $alluserMacs . '>/daily.gif';
            $urls['days'] = null;
            $urls['weekr'] = $bandwidthd_url . $alluserMacs . '>/weekly.gif';
            $urls['weeks'] = null;
            $urls['monthr'] = $bandwidthd_url . $alluserMacs . '>/monthly.gif';
            $urls['months'] = null;
            $urls['yearr'] = $bandwidthd_url . $alluserMacs . '>/yearly.gif';
            $urls['years'] = null;
        }
    }

 

 

Відредаговано Di111
  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
В 14.11.2019 в 17:43, Di111 сказал:

через Кучаген по hotspot

а с pppoe как быть? у меня в косах таргет - интерфейс, а линк просит на ip...

  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
В 19.11.2019 в 20:51, datakrava сказал:

а с pppoe как быть? у меня в косах таргет - интерфейс, а линк просит на ip...

))

там сверху код виден

получится что то вроде 

if (!ispos($bandwidthd_url, 'pppoe')) {
// Banwidthd graphs model:
            $urls['dayr'] = $bandwidthd_url . '/' . $ip . '-1-R.png';
            $urls['days'] = $bandwidthd_url . '/' . $ip . '-1-S.png';
            $urls['weekr'] = $bandwidthd_url . '/' . $ip . '-2-R.png';
            $urls['weeks'] = $bandwidthd_url . '/' . $ip . '-2-S.png';
            $urls['monthr'] = $bandwidthd_url . '/' . $ip . '-3-R.png';
            $urls['months'] = $bandwidthd_url . '/' . $ip . '-3-S.png';
            $urls['yearr'] = $bandwidthd_url . '/' . $ip . '-4-R.png';
            $urls['years'] = $bandwidthd_url . '/' . $ip . '-4-S.png';
        } else {
            // Get user's IP array:
            $urls['dayr'] = $bandwidthd_url . $alluserips[$ip] . '>/daily.gif';
            $urls['days'] = null;
            $urls['weekr'] = $bandwidthd_url . $alluserips[$ip] . '>/weekly.gif';
            $urls['weeks'] = null;
            $urls['monthr'] = $bandwidthd_url . $alluserips[$ip] . '>/monthly.gif';
            $urls['months'] = null;
            $urls['yearr'] = $bandwidthd_url . $alluserips[$ip] . '>/yearly.gif';
            $urls['years'] = null;
        }

и если на Mikrotik вы используете PPPoE и желаете видеть графики клиентов - можете указывать URL в виде: http://ваш_nas/graphs/queue/%3Cpppoe%2D

Відредаговано Di111
Ссылка на сообщение
Поделиться на других сайтах
В 23.11.2019 в 05:14, Di111 сказал:

))

там сверху код виден

получится что то вроде 

if (!ispos($bandwidthd_url, 'pppoe')) {
// Banwidthd graphs model:
            $urls['dayr'] = $bandwidthd_url . '/' . $ip . '-1-R.png';
            $urls['days'] = $bandwidthd_url . '/' . $ip . '-1-S.png';
            $urls['weekr'] = $bandwidthd_url . '/' . $ip . '-2-R.png';
            $urls['weeks'] = $bandwidthd_url . '/' . $ip . '-2-S.png';
            $urls['monthr'] = $bandwidthd_url . '/' . $ip . '-3-R.png';
            $urls['months'] = $bandwidthd_url . '/' . $ip . '-3-S.png';
            $urls['yearr'] = $bandwidthd_url . '/' . $ip . '-4-R.png';
            $urls['years'] = $bandwidthd_url . '/' . $ip . '-4-S.png';
        } else {
            // Get user's IP array:
            $urls['dayr'] = $bandwidthd_url . $alluserips[$ip] . '>/daily.gif';
            $urls['days'] = null;
            $urls['weekr'] = $bandwidthd_url . $alluserips[$ip] . '>/weekly.gif';
            $urls['weeks'] = null;
            $urls['monthr'] = $bandwidthd_url . $alluserips[$ip] . '>/monthly.gif';
            $urls['months'] = null;
            $urls['yearr'] = $bandwidthd_url . $alluserips[$ip] . '>/yearly.gif';
            $urls['years'] = null;
        }

и если на Mikrotik вы используете PPPoE и желаете видеть графики клиентов - можете указывать URL в виде: http://ваш_nas/graphs/queue/%3Cpppoe%2D

 

да, но когда я указываю:

В 23.11.2019 в 05:14, Di111 сказал:

URL в виде: http://ваш_nas/graphs/queue/%3Cpppoe%2D

получаю картину:

image.png.62a0038e50bc0cb3b513fc3e4fb9e467.png

смотрю откуда он хочет сам img:

image.png.70645dc79d8954f1480695f9c799c0ed.png 

как бы всё круто и классно, но у меня на mikrotik-e graphs даёт URL на img вот так: image.png.c85cd4a7942ce69cdf5fe10de14df578.png где в конце(после "pppoe-") логин абонета а не ip. (в simple queue таргет pppoe интерфейс)... 

 

надеюсь меня кто то поймёт))

Ссылка на сообщение
Поделиться на других сайтах
  • 10 months later...

Чи вдалося знайти рішення проблеми? 
Мікротік графік по PPPoE малює по гіперпосиланю: http://ваш_nas/graphs/queue/%3Cpppoe%2DЛогінАбонента%3E/daily.gif. Функція zb_BandwidthdGenLinks($ip) отримує на вхід IP користувача. Як на основи IP отримати логін користувача?

Ссылка на сообщение
Поделиться на других сайтах
В 12.10.2020 в 11:21, CAHI33 сказал:

Як на основи IP отримати логін користувача?

Ну, починаючи з релізу 1.1.1 в api.networking.php для того з'явилась окрема малеееенька функція: zb_UserGetLoginByIp($ip)

Ссылка на сообщение
Поделиться на других сайтах

 

Дякую за відповідь, але для не треба було використовувати функцію zb_UserGetLoginByIp($ip)
Тільки модіфіцировав функцію і виправив на $bandwidthd_url . '/<pppoe-' . $alluserips[$ip] . '>/daily.gif'; і все.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...