#!/usr/bin/perl -w # # $Id: traffic.pl,v 1.3 2004/10/18 20:53:39 nedko Exp $ # # Script to fetch traffic stats from support.netissat.bg # # ~/.trafficrc should exist and contain statements, one per line in form: # variable = value # Any whitespace before and after variable name and value is ignored. # username and password variables should be set. # # ~/.trafficrc example: # username = cab001705 # password = mysecret # use strict; use LWP::UserAgent; use HTTP::Request::Common; use HTTP::Cookies; sub ParseConfigFile($); sub Login($); sub Parse($); sub Logout($); my %netissat_stats; ParseConfigFile(\%netissat_stats); if (!$netissat_stats{'username'}) { print "Username not set\n"; exit 1; } if (!$netissat_stats{'password'}) { print "Password not set\n"; exit 1; } $netissat_stats{'cookie_jar'} = HTTP::Cookies->new(); $netissat_stats{'user_agent'} = LWP::UserAgent->new; $netissat_stats{'user_agent'}->timeout(10); $netissat_stats{'user_agent'}->env_proxy; $netissat_stats{'user_agent'}->cookie_jar($netissat_stats{'cookie_jar'}); # Login Login(\%netissat_stats); # Parse output Parse(\%netissat_stats); print "Period: $netissat_stats{'period'}\n"; print "Generated traffic: $netissat_stats{'generated_traffic'} MB\n"; print "Base traffic bought: $netissat_stats{'base_bought_traffic'} MB\n"; print "Additional traffic bought: $netissat_stats{'additional_bought_traffic'} MB\n"; print "Traffic left: $netissat_stats{'traffic_left'} MB\n"; print "End of payed period: $netissat_stats{'end_of_payed_period'}\n"; # Logout Logout(\%netissat_stats); sub Login($) { my $obj = shift; my $request; my $response; #print "Logging in user \"$obj->{'username'}\" ...\n"; $request = GET('https://support.netissat.bg/index.html'); $response = $obj->{'user_agent'}->request($request); $request = POST('https://support.netissat.bg/index.html?action=t', [username => $obj->{'username'}, password => $obj->{'password'}, Submit => " Влез "]); $response = $obj->{'user_agent'}->request($request); if (!$response->is_success) { die $response->status_line; } $obj->{'status'} = $response->content; # print "------------------------.\n"; # print $obj->{'status'}; # print "------------------------.\n"; if ($obj->{'status'} =~ /