diff options
Diffstat (limited to 'contrib/ipfilter/perl/Isbgraph')
-rw-r--r-- | contrib/ipfilter/perl/Isbgraph | 297 |
1 files changed, 0 insertions, 297 deletions
diff --git a/contrib/ipfilter/perl/Isbgraph b/contrib/ipfilter/perl/Isbgraph deleted file mode 100644 index c68b672..0000000 --- a/contrib/ipfilter/perl/Isbgraph +++ /dev/null @@ -1,297 +0,0 @@ -#!/usr/local/bin/perl - -# isbgraph -# an example in not so hot perl programming.... -# based around GraphMaker from Fabrizio Pivari -# A graph maker perl script - -use GD; -use Getopt::Long; -$hr=0; - -sub main{ - -$opt_conf="./graphmaker.cnf"; - -@elem=("NUMBERYCELLGRIDSIZE","MAXYVALUE","MINYVALUE","XCELLGRIDSIZE","XMAX", - "Data","Graph","Bar","Average","Graphnum","Title","Transparent","Rbgcolour", - "Gbgcolour","Bbgcolour","Rfgcolour","Gfgcolour","Bfgcolour","Rcolour", - "Gcolour","Bcolour","Racolour","Gacolour","Bacolour"); - -%option=( - NUMBERYCELLGRIDSIZE => '8', - MAXYVALUE => '7748', - MINYVALUE => '6500', - XCELLGRIDSIZE => '18', - XMAX => '1000', - Data => './graphmaker.dat', - Graph => './graphmaker.gif', - Bar => '1', - Average => '1', - Graphnum => '1', - Title => 'GraphMaker 2.1', - Transparent => 'yes', - Rbgcolour => '255', - Gbgcolour => '255', - Bbgcolour => '255', - Rfgcolour => '0', - Gfgcolour => '0', - Bfgcolour => '0', - Rcolour => '0', - Gcolour => '0', - Bcolour => '255', - Racolour => '255', - Gacolour => '255', - Bacolour => '0'); - -&GetOptions("conf=s","help") || &printusage ; - - -if ($opt_help) {&printusage}; - -open (CNF, $opt_conf) || die; -while (<CNF>) { -s/\t/ /g; #replace tabs by space -next if /^\s*\#/; #ignore comment lines -next if /^\s*$/; #ignore empty lines -foreach $elem (@elem) - { - if (/\s*$elem\s*:\s*(.*)/) { $option{$elem}=$1; } - } -} -close(CNF); -######################################### -# -# -# -# number datapoints/24 hours is 1440 (minutes) -# -# Split into N graphs where each graph has max of 240 datapoints (4 hours) -# - -$barset=0; -$m=0; -$YGRIDSIZE = 400; -$YCELLGRIDSIZE = $YGRIDSIZE/$option{'NUMBERYCELLGRIDSIZE'}; -$XINIT = 30; -$XEND = 8; -$YINIT =20; -$YEND = 20; -#$XGRIDSIZE = ($option{'XMAX'}*$option{'XCELLGRIDSIZE'}); -#$XGRIDSIZE = (240*$option{'XCELLGRIDSIZE'}); -$XGRIDSIZE = 620; -$XGIF = $XGRIDSIZE + $XINIT + $XEND; -$XGRAPH = $XGRIDSIZE + $XINIT; -$YGIF = $YGRIDSIZE + $YEND + $YINIT; -$YGRAPH = $YGRIDSIZE + $YINIT; -$RANGE=$option{'MAXYVALUE'}-$option{'MINYVALUE'}; -$SCALE=$YGRIDSIZE/$RANGE; - -# NEW IMAGE - $im=new GD::Image($XGIF,$YGIF); - -$white=$im->colorAllocate(255,255,255); -$black=$im->colorAllocate(0,0,0); -$pink=$im->colorAllocate(255,153,153); -$red=$im->colorAllocate(255,0,0); -$blue=$im->colorAllocate(0,0,255); -$green=$im->colorAllocate(0,192,51); -$orange=$im->colorAllocate(255,102,0); -$pink=$im->colorAllocate(255,153,153); -$teal=$im->colorAllocate(51,153,153); -# gif background is $bg - $bg=$white; - $fg=$blue; -# LINE COLOUR HELP BY VAR $colour - $colour=$red; - $acolour=$yellow; - # GRID - if ($option{'Transparent'} eq "yes") {$im->transparent($bg)}; - $im->filledRectangle(0,0,$XGIF,$YGIF,$bg); - -# Dot style -# vertical markers on Y axis grid - $im->setStyle($fg,$bg,$bg,$bg); - for $i (0..$option{'XMAX'}) - { - $xspace= $XINIT+$option{'XCELLGRIDSIZE'}*$i +$i; - # $im->line($xspace,$YINIT,$xspace,$YGRAPH,gdStyled); - $num = $i+1; - - use integer; - { - $posis=$num - ($num/60)*60; - } - if ($posis eq 0) - { - $outhr=0; - $hr=($hr + 1) ; - $outhr=$hr+$option{'Graphnum'}*4; -# shift minutes coords to correct stat hour! - $im->string(gdMediumBoldFont,$xspace-3,$YGRAPH,"$outhr",$fg); - } - - } # end of scan over X values (minutes) - - $YCELLVALUE=($option{'MAXYVALUE'}-$option{'MINYVALUE'})/$option{'NUMBERYCELLGRIDSIZE'}; - for $i (0..$option{'NUMBERYCELLGRIDSIZE'}) - { - $num=$option{'MINYVALUE'}+$YCELLVALUE*($option{'NUMBERYCELLGRIDSIZE'}-$i); - $im->string(gdMediumBoldFont,0,$YINIT+$YCELLGRIDSIZE*$i -6,"$num",$fg); - } - $im->string(gdSmallFont,$XGRIDSIZE/2-80,0,$option{'Title'},$fg); - - $odd_even = $option{'XCELLGRIDSIZE'}%2; - #odd - if ($odd_even eq 1) {$middle = $option{'XCELLGRIDSIZE'}/2 +0.5;} - else {$middle = $option{'XCELLGRIDSIZE'}/2 +0.5;} - -# start reading data -# open (DATA,$option{'Data'}) || die "cant open $option{'Data'}"; -# nextdata becomes Y on reading of second data set.... -$nextdata="N"; -@datafiles=("./in.dat" , "./out.dat" ); - foreach ( @datafiles ) -{ - $m=0; - $count=0; - $i=0; - $fname=$_; - - print "fname $fname\n"; -# change entry for red in colour table to green for packets LEAVING target host - - open (DATA,$_) || die "cant open $_"; - print "$nextdata nextdata\n"; - while (<DATA>) - { - /(.*):(.*)/; - if ($option{'Average'} eq 1) {$m+=$2;$i++;} - if ($count eq 0){$XOLD=$1;$YOLD=$2;$count=1;next} - $X=$1; $Y=$2; -# +($X-1) are the pixel of the line - $xspace= $XINIT+$option{'XCELLGRIDSIZE'}*($X-1) +($X-1); - $xspaceold= $XINIT+$option{'XCELLGRIDSIZE'}*($XOLD-1) +($XOLD-1); - $yspace= $YGRAPH-($Y-$option{'MINYVALUE'})*$SCALE; - $yspaceold= $YGRAPH-($YOLD-$option{'MINYVALUE'})*$SCALE; - $barset=$option{'Bar'}; - if ($barset eq 0) - { - - if($nextdata eq "Y") - { - - #$im->line($XINIT,$YGRAPH,$X,$Y,$orange); - $im->line($xspaceold,$yspaceold,$xspace,$yspace,$green); - } - else - { - $im->line($xspaceold,$yspaceold,$xspace,$yspace,$red); - } - } - else - { - if ($1 eq 2) - { - $im->filledRectangle($xspaceold,$yspaceold, - $xspaceold+$middle,$YGRAPH,$colour); - $im->rectangle($xspaceold,$yspaceold, - $xspaceold+$middle,$YGRAPH,$fg); - } - else - { - $im->filledRectangle($xspaceold-$middle,$yspaceold, - $xspaceold+$middle,$YGRAPH,$colour); - $im->rectangle($xspaceold-$middle,$yspaceold, - $xspaceold+$middle,$YGRAPH,$fg); - } - } - $XOLD=$X; $YOLD=$Y; - - } # end of while DATA loop - - $im->line(500,40,530,40,$red); - $im->line(500,60,530,60,$green); - $im->string(gdSmallFont,535,35,"Packets IN",$fg); - $im->string(gdSmallFont,535,55,"Packets OUT",$fg); - - if ($option{'Bar'} ne 0) - { - if ($X eq $option{'XMAX'}) - { - $im->filledRectangle($xspace-$middle,$yspace, - $xspace,$YGRAPH,$colour); - $im->rectangle($xspace-$middle,$yspace, - $xspace,$YGRAPH,$fg); - } - else - { - $im->filledRectangle($xspace-$middle,$yspace, - $xspace+$middle,$YGRAPH,$colour); - $im->rectangle($xspace-$middle,$yspace, - $xspace+$middle,$YGRAPH,$fg); - } - } - close (DATA); - - - $nextdata="Y"; -# TOP LEFT is 0,0 on GIF (image) -# origin of plot is xinit,yinit - # print "little line\n"; - $im->line($xspace,$yspace,$xspace,$YGRAPH,$blue); - $im->line($xspace,$YGRAPH,$XINIT,$YGRAPH,$blue); -# (0,0) in cartesian space time=0 minutes, rate 0 packets/s - $im->line($XINIT,$YGRAPH,$XINIT,$YGRAPH,$blue); - $im->line($XINIT,$YGRAPH,$XINIT,$YGRAPH,$green); - -} # close foreach loop on data file names - - - - - if ($option{'Average'} eq 1) - { - # Line style - $im->setStyle($acolour,$acolour,$acolour,$acolour,$bg,$bg,$bg,$bg); - $m=$m/$i; - $ym=$YGRAPH-($m-$option{'MINYVALUE'})*$SCALE; - $im->line($XINIT,$ym,$XGRAPH,$ym,gdStyled) - } - $im->line($XINIT,$YINIT,$XINIT,$YGRAPH,$fg); - $im->line($XINIT,$YINIT,$XGRAPH,$YINIT,$fg); - $im->line($XGRAPH,$YINIT,$XGRAPH,$YGRAPH,$fg); - $im->line($XINIT,$YGRAPH,$XGRAPH,$YGRAPH,$fg); - - $im->string(gdSmallFont,$XGIF-335,$YGIF - 12,"Time of Day (hours)",$fg); - open (GRAPH,">$option{'Graph'}") || die "Error: Grafico.gif - $!\n"; - print GRAPH $im -> gif; - close (GRAPH); - - - - -} # end of subroutine main - -main; -exit(0); - -sub printusage { - print <<USAGEDESC; - -usage: - graphmaker [-options ...] - -where options include: - -help print out this message - -conf file the configuration file (default graphmaker.cnf) - -If you want to know more about this tool, you might want -to read the docs. They came together with graphmaker! - -Home: http://www.geocities.com/CapeCanaveral/Lab/3469/graphmaker.html - -USAGEDESC - exit(1); -} - |