Jump to content
Local
SVD

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

Recommended Posts

Я так понял UB отрабатывает, косяк где то на микроте?
Мож кто в теме намекните плиз.

Share this post


Link to post
Share on other sites

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;
        }
    }

 

 

Edited by Di111
  • Like 1

Share this post


Link to post
Share on other sites
В 14.11.2019 в 17:43, Di111 сказал:

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

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

  • Like 1

Share this post


Link to post
Share on other sites
В 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

Edited by Di111

Share this post


Link to post
Share on other sites
В 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 интерфейс)... 

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
В 12.10.2020 в 11:21, CAHI33 сказал:

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

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

Share this post


Link to post
Share on other sites

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×