use strict;
use warnings;
use SNMP;
use Data::Dumper;
$ENV{'MIBS'}="ALL"; #Load all available MIBs
my $SNMP_TARGET = "192.168.0.1";
my $SNMP_COMMUNITY = "public";
my $session;
my $error;
#my $UNAME = '.iso.org.dod.internet.mgmt.mib-2.system.sysDescr';
my $TRAFFIC_IN = 'ifInOctets.2';
my $TRAFFIC_OUT = 'ifOutOctets.2';
my $UPTIME = 'sysUpTime.0';
my $SYSTEM = 'sysDescr.0';
my $SYSNAME = 'sysName.0';
my $STORAGE = 'hrStorage.0';
my $PROCESSES = 'hrSystemProcesses.0';
sub get_processes
{
connectSNMP() if not $session;
return $session->get($PROCESSES);
}
sub get_storage
{
connectSNMP() if not $session;
return $session->get($STORAGE);
}
sub get_traffic_in
{
connectSNMP() if not $session;
return $session->get($TRAFFIC_IN);
}
sub get_uptime
{
connectSNMP() if not $session;
return $session->get($UPTIME);
}
sub get_system
{
connectSNMP() if not $session;
return $session->get($SYSTEM);
}
sub get_sysname
{
connectSNMP() if not $session;
return $session->get($SYSNAME);
}
sub get_traffic_out
{
connectSNMP() if not $session;
return $session->get($TRAFFIC_OUT);
}
sub connectSNMP
{
$session = new SNMP::Session (DestHost => $SNMP_TARGET, Community => $SNMP_COMMUNITY, Version => 1);
}
connectSNMP();
print "IFOUT:".get_traffic_out()."\n";
print "IFIN:".get_traffic_in()."\n";
print "UPTIME:".get_uptime()."\n";
print "SYSTEM:".get_system()."\n";
print "NAME:".get_sysname()."\n";
print "HDD:".get_storage()."\n";
print "NUM_PROC:".get_processes()."\n";