#!/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;
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