URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2064
[ Назад ]

Исходное сообщение
"Можно ли строить графики на perl и передавать их в окно браузера?"

Отправлено anonymous , 12-Сен-03 11:35 
Я абсолютно не знаю возможностей perl, поэтому подскажите, пожалуйста, как лоху, можно ли сделать так, чтобы клиент web-сервера посылал запрос , а тот его обрабатывал с помощью perl и выдавал результат для клиента в виде графика?

Содержание

Сообщения в этом обсуждении
"Можно ли строить графики на perl и передавать их в окно брау..."
Отправлено Алексей , 15-Сен-03 12:33 
>Я абсолютно не знаю возможностей perl, поэтому подскажите, пожалуйста, как лоху, можно
>ли сделать так, чтобы клиент web-сервера посылал запрос , а тот
>его обрабатывал с помощью perl и выдавал результат для клиента в
>виде графика?


Юзать модуль GD


"Можно ли строить графики на perl и передавать их в окно брау..."
Отправлено шторм , 16-Сен-03 04:44 

>Юзать модуль GD


Если заработает)))


"Можно ли строить графики на perl и передавать их в окно брау..."
Отправлено bogerm , 16-Сен-03 05:02 
>
>>Юзать модуль GD
>
>
>Если заработает)))

Прекрасно работает в mrtg например. Но еще проще графики строить прямо в gnuplot и передавать обратно в программу в виде картинки через pipe.


"Можно ли строить графики на perl и передавать их в окно брау..."
Отправлено konst , 16-Сен-03 13:24 
>>
>>>Юзать модуль GD
>>
>>
>>Если заработает)))
>
>Прекрасно работает в mrtg например. Но еще проще графики строить прямо в
>gnuplot и передавать обратно в программу в виде картинки через pipe.
>
Можно передать результат gnuplota в броузер?
Можно краткий пример кода (сама схема)...?


"Можно ли строить графики на perl и передавать их в окно брау..."
Отправлено Dracula , 17-Сен-03 16:02 
#!/usr/bin/perl -w
use Chart::Lines;
use Tie::IxHash;

open (IPA, "/usr/local/bin/ipastat -R inet-in  -i /0-/23:59  -n -e |");
$line = <IPA>;
while ($line=<IPA>) {
$line =~ s/\s+/ /;
chomp $line;
my ($a101, $b101, $c101, $d101, $e101, $f101) = split (/ /, $line, 6);

#$now = `date +%H.%M`;
$obj = Chart::Lines->new(90, 200);
$myhour24 = `date +%H.%M`;
@data = ( [ '', 'inet' ],
[ $f101, $f101]);
$obj->set ('title' => 'Inet_ALL',
        'legend' => 'none',
#       'graph_border' =>10,
        'brush_size' => 5,
        'x_ticks' => 'normal',
        'x_label' => $myhour24,
#        'max_val' => $scl_max24,
#        'min_val' => $scl_min24,
#        'tick_len' => 10,
##       'skip_x_ticks' => 12,
        'transparent' => 'true',
        'grey_background' => 'true',
        'y_label' => 'inet_in_rule_101',
        'grid_lines' => 'true',
#        'spaced_bars' => 'false',
        'colors' => {
                'background' => [255,255,255],
                'x_grid_lines' => [155,186,214],
                'y_grid_lines' => [155,186,214],
                'text' => [60,40,140],
                'dataset1' => [130,130,130]
}
);
$obj->png ("/patch_to_site/1.png", \@data);
}
close IPA;

===============================================
Самодельная фигня , но работает.
xx.png  ставиш в HTML <img src....>  и смотриш
Данный пример смотрит ipastat ,  можно напрямую  c ipfw show .
Поставить надо модули для перла  см. выше.
Сдесь не справился только с осью времени , поэтому графики как градусники Ж)
Сам скрипт в крон.А вообще MRTG  красивее , и те же команды прилепил туда .Короче работет и там и там.
  


"Можно ли строить графики на perl и передавать их в окно брау..."
Отправлено bogerm , 18-Сен-03 04:42 
>Можно передать результат gnuplota в броузер?
>Можно краткий пример кода (сама схема)...?

Конечно можно. Я точно сейчас не вспомню протокол HTTP - нужно смотреть RFC или w3c.org...
Но идея такая - перловый скрипт без параметров выдает html code. со специальным параметром
он должен напечатать что-то вроде Content-Type: image/png; qs=0.5 и расставить нужное количество переводов строки. Потом просто в бинарном виде выводим картинку в формате PNG:

open (GP, "|/usr/local/bin/gnuplot") or die "no gnuplot";
use FileHandle;
GP->autoflush(1);
print GP,"set term png;plot sin(x)\n";
close GP

в хтмл-ном коде должно быть что-то вроде <IMG SRC="http://myserver.org/cgi-bin/myscript.pl?plotit">