Автоматическая «прибивка» пользователей к портам устройств в LanBilling 2 путем опроса MAC свичей

Дано:

1) LanBilling в которой ведется журнал авторизации пользователей по логину с указанием MAC адреса устройства с которого прошла авторизация.

2) В LanBilling нет привязки пользователя ни к порту, ни к сетевому устройству.

Задача: опросить все сетевые устройства, узнать все MAC адреса и порты свичей на которых «висят» пользователи

Решение:

— получаем у свичей информацию о MAC адресах на портах
— ищем этот MAC  в истории авторизации LanBilling — получаем учетку
— «прибиваем» эту учетку в LanBilling к конкретному устройству, к конкретному порту.

Вуаля! Теперь когда пользователь звонит «ничего не работает», мы знаем на каком свиче и на каком порту он сидит. Ура товарищи!

Читать далее

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

    Использование Pchart для построения графиков на PHP

    Классы Pchart представляют очень простой способ отрисовки графиков на PHP. Кроме того, в комплекте поставки идет «песочница», где можно визуально настроить параметры и посмотреть какой код нужно использовать для его построения,ну и собственно посмотреть как будет выглядеть примерно ваш график.

    Вот пример графика

    Снимок экрана от 2014-08-26 12:32:35

    Вот пример кода

    include("../../../../class/pchart/pData.class.php"); 
    include("../../../../class/pchart/pDraw.class.php"); 
    include("../../../../class/pchart/pImage.class.php"); 
    $myData = new pData();   
    
    while($date <= $dtend){
        $kof=1;
        $date = date('Y-m-d', strtotime($date.' + '.$kof.' days')); 
        $ruser=GetAllStatByDate($date,$grp,$agnt,$lb);
        $activeusers=$ruser["activeusers"];
        $allaccountsb10=$ruser["allaccountsb10"];
        $allaccountsb1=$ruser["allaccountsb1"];
        $atherblock=$ruser["atherblock"];
        $allaccounts=$ruser["allaccounts"];
    // добавляем данные
        $myData->addPoints($activeusers,"activeusers");
        $myData->addPoints($allaccountsb10,"allaccountsb10");
        $myData->addPoints($allaccountsb1,"allaccountsb1");
        $myData->addPoints($allaccounts,"allaccounts");
        $myData->addPoints($date,"Month");
    };
    // синонимы
    $myData->setSerieDescription("activeusers","Активных учеток");
    $myData->setSerieDescription("allaccountsb10","Блокировка 10");
    $myData->setSerieDescription("allaccountsb1","Блокировка по балансу");
    $myData->setSerieDescription("allaccounts","Всего учеток");
    // что в низу
    $myData->setAbscissa("Month");
    // сто слева
    $myData->setAxisUnit(1," Чел");
    
    //задаем цвета графиков
    $serieSettings = array("R"=>51,"G"=>255,"B"=>0,"Alpha"=>150);
    $myData->setPalette("activeusers",$serieSettings);
    
    $serieSettings = array("R"=>255,"G"=>38,"B"=>0,"Alpha"=>150);
    $myData->setPalette("allaccountsb10",$serieSettings);
    
    $serieSettings = array("R"=>255,"G"=>200,"B"=>0,"Alpha"=>150);
    $myData->setPalette("allaccountsb1",$serieSettings);
    
    $serieSettings = array("R"=>2,"G"=>11,"B"=>1,"Alpha"=>150);
    $myData->setPalette("allaccounts",$serieSettings);
    
    
    
    $myPicture = new pImage(1250,500,$myData); // <-- Размер холста
    
    $Settings = array("StartR"=>219, "StartG"=>231, "StartB"=>139, "EndR"=>1, "EndG"=>138, "EndB"=>68, "Alpha"=>50); 
    $myPicture->drawGradientArea(0,0,1250,500,DIRECTION_VERTICAL,$Settings);  
      
    $myPicture->setFontProperties(array("FontName"=>"../../../../fonts/calibri.ttf","FontSize"=>8));
    $myPicture->setGraphArea(50,20,1230,480); // <-- Размещение графика на холсте
    $myPicture->drawScale();
    $myPicture->drawBestFit(array("Alpha"=>40)); // <-- Прямая статистики
    
    $myPicture->drawSplineChart();
    $myPicture->drawPlotChart(array("DisplayValues"=>TRUE,"PlotBorder"=>TRUE,"BorderSize"=>0,"Surrounding"=>-60,"BorderAlpha"=>50)); // <-- Точки на графике
    $myPicture->drawLegend(700,10,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));// <-- Размещение легенды
    
    
    $unique = date("Y.m.d_H.i.s");
    $gsFilename_Traffic = "traffic_".$unique.".png";
    
    $myPicture->Render('../../../../files/'.$gsFilename_Traffic);
    echo "<img src='files/$gsFilename_Traffic'>";
    VN:F [1.9.22_1171]
    Rating: 0.0/10 (0 votes cast)
    VN:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

      Быстрый доступ к основным командам в Linux

      Я человек ленивый. А потому часто используя одни и те-же команды в консоли Linux, сделал себе диалоговое окошко с меню, отображаемое при помощи bash, которое помогает мне сократить время на вспоминание что где когда и зачем. А помогла мне в этом утилита dialog.

      Снимок экрана от 2014-08-20 17:53:25

      Вот пример bash скрипта, который рисует нечто подобное:

      #!/bin/sh
      DIALOG=${DIALOG=dialog}
      tempfile=`mktemp 2>/dev/null` || tempfile=/tmp/test$$
      trap "rm -f $tempfile" 0 1 2 5 15
      
      $DIALOG --clear --title "Выбор терминала для работы" \
              --menu "Выберите терминал:" 40 51 40 \
              "This"  "Остаться дома" \
              "Chaos"  "billing.wedwedq.ru" \
              "Athena"  "billing.yefwerfe.ru" \
              "Ares"  "billing.wefdwe.tv" \
      	"---------"	"------"\
              "Eros" "Сервер доступа Шексна,Хохлово(Ш)" \
              "Helios" "Сервер доступа Чагода (Ш)" \
              "Nike" "Сервер доступа Кадуй (Ш)" \
              "Artemis" "Сервер доступа Лоста (Ш)" \
              "Poseidon" "Сервер доступа Вытегра (Ш)"  2> $tempfile
      
      retval=$?
      
      choice=`cat $tempfile`
      
      case $retval in
        0)
          if [ $choice = "This" ]; then
           clear
           exit
          fi
      
          if [ $choice = "Ares" ]; then
           ssh billing.qwefqwe.tv -l логин
          fi
      
          if [ $choice = "Helios" ]; then
           ssh 121.237.158.1 -l логин
          fi
      
          if [ $choice = "Nike" ]; then
           ssh 127.27.138.1 -l логин
          fi
      
          if [ $choice = "Artemis" ]; then
           ssh 122.144.337.120 -l логин
          fi;;
        1)
          echo "Отказ от ввода.";;
        255)
          echo "Нажата клавиша ESC.";;
      VN:F [1.9.22_1171]
      Rating: 0.0/10 (0 votes cast)
      VN:F [1.9.22_1171]
      Rating: 0 (from 0 votes)

        Чтиво за последний месяц…

        • item1236476219_geya_almanah_nauchnoj_fantastiki_m_mysl_1990_1Гея — альманах научной фантастики
        • Краткая история почти всего. Билл Брайсон
        • Вся стальная крыса. Том 1,2 Гарри Гаррисон
        • Многорукий бог далайна. Свет в окошке. Святослав Логинов
        • Визиты: осенние визиты. Спектр. Кредо. Сергей Лукьяненко

        Рекомендую к прочтению: Свет в окошке, Стальная крыса, Краткая история почти всего. Все остальное читабельно, но не так захватывает.

        VN:F [1.9.22_1171]
        Rating: 10.0/10 (1 vote cast)
        VN:F [1.9.22_1171]
        Rating: 0 (from 0 votes)

          Жизнь замечательных грибов