diff options
Diffstat (limited to 'include/nms/snmp.pm')
| -rw-r--r-- | include/nms/snmp.pm | 91 | 
1 files changed, 0 insertions, 91 deletions
| diff --git a/include/nms/snmp.pm b/include/nms/snmp.pm deleted file mode 100644 index 26ada44..0000000 --- a/include/nms/snmp.pm +++ /dev/null @@ -1,91 +0,0 @@ -#! /usr/bin/perl -use strict; -use warnings; -use SNMP; -use nms; -package nms::snmp; - -use base 'Exporter'; -our @EXPORT = qw(); - -BEGIN { -	# $SNMP::debugging = 1; - -	# sudo mkdir /usr/share/mibs/site -	# cd /usr/share/mibs/site -	# wget -O- ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | sudo tar --strip-components=3 -zxvvf - -	SNMP::initMib(); -	SNMP::addMibDirs("/srv/tgmanage/mibs/StandardMibs"); -	SNMP::addMibDirs("/srv/tgmanage/mibs/JuniperMibs"); -	 -	SNMP::loadModules('SNMPv2-MIB'); -	SNMP::loadModules('ENTITY-MIB'); -	SNMP::loadModules('IF-MIB'); -	SNMP::loadModules('LLDP-MIB'); -	SNMP::loadModules('IP-MIB'); -	SNMP::loadModules('IP-FORWARD-MIB'); -} - -sub snmp_open_session { -	my ($ip, $community, $async) = @_; - -	$async //= 0; - -	my %options = (UseEnums => 1); -	if ($ip =~ /:/) { -		$options{'DestHost'} = "udp6:$ip"; -	} else { -		$options{'DestHost'} = "udp:$ip"; -	} - -	if ($community =~ /^snmpv3:(.*)$/) { -		my ($username, $authprotocol, $authpassword, $privprotocol, $privpassword) = split /\//, $1; - -		$options{'SecName'} = $username; -		$options{'SecLevel'} = 'authNoPriv'; -		$options{'AuthProto'} = $authprotocol; -		$options{'AuthPass'} = $authpassword; - -		if (defined($privprotocol) && defined($privpassword)) { -			$options{'SecLevel'} = 'authPriv'; -			$options{'PrivProto'} = $privprotocol; -			$options{'PrivPass'} = $privpassword; -		} - -		$options{'Version'} = 3; -	} else { -		$options{'Community'} = $community; -		$options{'Version'} = 2; -	} - -	my $session = SNMP::Session->new(%options); -	if (defined($session) && ($async || defined($session->getnext('sysDescr')))) { -		return $session; -	} else { -		die 'Could not open SNMP session to ' . $ip; -	} -} - -# Not currently in use; kept around for reference. -sub fetch_multi_snmp { -	my ($session, @oids) = @_; - -	my %results = (); - -	# Do bulk reads of 40 and 40; seems to be about the right size for 1500-byte packets. -	for (my $i = 0; $i < scalar @oids; $i += 40) { -		my $end = $i + 39; -		$end = $#oids if ($end > $#oids); -		my @oid_slice = @oids[$i..$end]; - -		my $localresults = $session->get_request(-varbindlist => \@oid_slice); -		return undef if (!defined($localresults)); - -		while (my ($key, $value) = each %$localresults) { -			$results{$key} = $value; -		} -	} - -	return \%results; -} - | 
