Jump to content

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


Recommended Posts

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

 

 

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

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

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

  • Like 1
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
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 интерфейс)... 

 

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

Link to post
Share on other sites
  • 10 months later...

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

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

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

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

Link to post
Share on other sites

 

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

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.

×
×
  • Create New...