Changeset - 693a5cadf0d0
[Not reviewed]
Merge default
0 2 0
Dennis Fink - 11 years ago 2014-03-04 22:02:55
dennis.fink@c3l.lu
merge
2 files changed with 12 insertions and 6 deletions:
0 comments (0 inline, 0 general)
Scripts/traffic_statistics.pl
Show inline comments
 
@@ -11,16 +11,20 @@ use Chart::Clicker::Context;
 
use Chart::Clicker::Data::DataSet;
 
use Chart::Clicker::Data::Marker;
 
use Chart::Clicker::Data::Series;
 
use Chart::Clicker::Renderer::Area;
 
use Geometry::Primitive::Rectangle;
 
use Graphics::Color::RGB;
 

	
 
############### [Which year] ###########################################
 
$select_year = 2014;
 
$select_year = shift 	if $ARGV[0] =~ /^\d{4}$/;
 
############### [Create new statistics image] ##########################
 
$cc = Chart::Clicker->new(width => 1248, height => 800);
 
$ds = Chart::Clicker::Data::DataSet->new();
 
@months = qw(1 2 3 4 5 6 7 8 9 10 11 12);
 
@months = 1..12;
 
@series;
 
@traffix;
 
########################################################################
 
@nodes = qw(relay exit);
 
############### [Servername gathering via Ennstatus API] ###############
 
foreach $node (@nodes) {
 
@@ -42,21 +46,22 @@ undef $counter;
 
foreach $server_name (@servers) {
 
	print "[+] Checking '$server_name'\n";
 
	$server_response = HTTP::Tiny->new->get('http://' . $server_name . '.enn.lu/vnstat.xml');
 
	die "[-] '$server_name' Failed!\n" unless $server_response->{success};
 
	@xml_content = split(/\n/,$server_response->{content});
 
	foreach $xml_line (@xml_content) {
 
		if ($xml_line =~ /\<month id="(\d+)"\>\<date\>\<year\>(\d+)\<\/year\>\<month\>(\d+)\<\/month\>\<\/date\>\<rx\>(\d+)\<\/rx\>\<tx\>(\d+)\<\/tx\>\<\/month\>/ig) {
 
		if ($xml_line =~ /\<month id="(\d+)"\>\<date\>\<year\>($select_year)\<\/year\>\<month\>(\d+)\<\/month\>\<\/date\>\<rx\>(\d+)\<\/rx\>\<tx\>(\d+)\<\/tx\>\<\/month\>/ig) {
 
			($id,$year,$month,$rx,$tx) = ($1,$2,$3,$4,$5,$6);
 
			$rxtx = ($tx + $rx) * 10e-10;
 
			$traffic = $1 if $rxtx =~ /^(\d+\.?\d{5})/;
 
			push @traffix, $traffic;
 
		}
 
	}
 
	for (scalar @traffix..11) {
 
		unshift @traffix, 0;
 
		push @traffix, 0 	if $select_year == 2014;
 
		unshift @traffix, 0 	unless $select_year == 2014;
 
	}
 

	
 
	$ds->add_to_series(Chart::Clicker::Data::Series->new(
 
        keys    =>  \@months,
 
        values  =>  [@traffix],
 
        name => $server_name
 
@@ -70,13 +75,14 @@ foreach $server_name (@servers) {
 
$def = $cc->get_context('default');
 
$def->range_axis->label('Tbit');
 
$def->domain_axis->label('Month');
 
$area = Chart::Clicker::Renderer::Area->new(opacity => .2);
 
$area->brush->width(3);
 
$def->renderer($area);
 
$def->range_axis->tick_values([qw(20 40 60 80 100 120 140 160 180 200 220)]);
 
$def->range_axis->tick_values([qw(20 40 60 80 100 120 140 160 300)]);
 
$def->range_axis->format('%d');
 
$def->domain_axis->ticks(11);
 
$def->domain_axis->tick_labels([qw(January February Mars April June July August September October November December)]);
 
$def->domain_axis->format('%d');
 

	
 
$cc->write_output('stats.png');
 

	
Scripts/update_server.pl
Show inline comments
 
@@ -32,22 +32,22 @@ for (1..scalar @configs) {
 
            $server_name = $1       if /^Nickname (\w+)/i;
 
            $server_type = 'Exit'   if /^ExitPolicy accept \*:\*/i;
 
            $server_type = 'Relay'  if /^ExitPolicy reject \*:\*/i and $server_type ne 'Bridge';
 
            $server_type = 'Bridge' if /^BridgeRelay 1/i;
 
            $data_dir    = $1       if /^DataDirectory (.*)/i;
 
            $pidfile     = $1       if /^PidFile (.*)/i;
 
            $obfs        = 'True'   if /^ServerTransportPlugin obfs2,obfs3/i;
 
            $obfs        = 'True'   if /^ServerTransportPlugin (obfs\d+|scramblesuit)/i;
 
            $ip          = $1       if /^OutboundBindAddress (\d+\.\d+\.\d+\.\d+)/i;
 
        }
 
    close config;
 
######## [obfs check] ########  
 
    $obfs = 'False' if $obfs ne 'True' and $server_type eq 'Bridge';
 
print $obfs . "\n";
 
######## [ip check] ########    
 
    if ($ip == "") {
 
        $socket = new IO::Socket::INET ( PeerAddr => "google.com",
 
        $socket = new IO::Socket::INET ( PeerAddr => "enn.lu",
 
                                         PeerPort => 80,
 
                                         Proto => 'tcp');
 
        $ip = $socket->sockhost;
 
        close $socket;
 
    }
 
######## [fingerprint] ######## 
0 comments (0 inline, 0 general)