Saturday, 1 March 2014

Ping Server to Retrieve Server Details

#!/usr/local/bin/perl

use Net::SNMP;     # SNMP module

$IPadd=@ARGV[0]; # IP Address in first argument with Net Mask
$string=@ARGV[1]; # Community Name in 2nd Argument
$prbtime=@ARGV[2]; # Bit Rate in 3rd Argument


print "You Entered IP Address=".$IPadd."\n";
print "You entered Community =".$string."\n";
print "you entered Bit Rate =".$prbtime."\n";



$sysUpTime = '1.3.6.1.2.1.1.3.0';      # time in seconds up time
$ifNumber = '1.3.6.1.2.1.2.1.0';       # No. of Interface
$ifSpeed = '1.3.6.1.2.1.2.2.1.5.2';    # Gauge 32. bw in bits per second
$ifInOctets = '1.3.6.1.2.1.2.2.1.10.1';  # counter 32, total NO. of octets RX. on the interface
$ifOutOctets = '1.3.6.1.2.1.2.2.1.16.2'; # cont32, total no. of octets TX. out of the interface


$prevtime=time+$prbtime;

 print " System UpTime \t No of Interface \t Rx Ocetet \t Tx. Octet \n";

($session,$error) = Net::SNMP->session(hostname =>$IPadd,community =>$string);

@arres=("$sysUpTime","$ifNumber","$ifSpeed","$ifInOctets","$ifOutOctets"."\n");


$result=$session->get_request(-varbindlist => \@arres);

if(defined($result))

{
print "\n ".$result->{$sysUpTime}."\t".$result->{$ifNumber}."\t".$result->{$ifInOctets}."\t".$result->{$ifOutOctets}."\n";

while (1)
 {
if (time > $prevtime)
 {
$result2=$session->get_request(-varbindlist => \@arres);
if(defined($result2))
{
print "\n\t Up Time \t Interfaces \t Bitrate\t InOctets \t OutOctets \n";
print "\t".$result->{$sysUpTime}."\t".$result->{$ifNumber}."\t".$result->{$ifSpeed}."\t".$result->{$ifInOctets}."\t".$result->{$ifOutOctets}."\n";


push(@bitps,$result2->{$ifSpeed});
push(@inoctRates,$result2->{$inOctets});
push(@outoctRates,$result2->{$outOctets});

}
my $sum1 = 0;
my $sum2 = 0;
my $sum3 = 0;
($sum1 += $_) for @bitps;
($sum2 += $_) for @inoctRates;
($sum3 += $_) for @outoctRates;

print "\n Mean BitRate is:\t".$suml/scalar(@bitps);
print "\n Mean IN BitRate is:\t".$sum2/scalar(@inoctRates);
print "\n Mean OUT BitRate is:\t".$sum3/scalar(@outoctRates);



$prevtime = (time + $probeRate);
}
}

}

$session->close;




No comments:

Post a Comment