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";