/usr/share/doc/libsnmp-session-perl/examples/test.pl is in libsnmp-session-perl 1.13-1.1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | #!/usr/bin/perl -w
# Minimal useful application of the SNMP package.
# Author: Simon Leinen <simon@lia.di.epfl.ch>
# RCS $Header: /home/leinen/CVS/SNMP_Session/test/test.pl,v 1.18 2003-05-29 16:45:27 leinen Exp $
######################################################################
# This application sends a get request for three fixed MIB-2 variable
# instances (sysDescr.0, sysContact.0 and ipForwarding.0) to a given
# host. The hostname and community string can be given as
# command-line arguments.
######################################################################
require 5;
use SNMP_Session;
use BER;
use strict;
### Prototypes
sub usage();
sub snmp_get($@);
$SNMP_Session::suppress_warnings = 1;
my $ipv4_only_p = 0;
my $snmp_version = 1;
while ($#ARGV >= 0 and $ARGV[0] =~ /^-/) {
if ($ARGV[0] eq '-4') {
$ipv4_only_p = 1;
} elsif ($ARGV[0] eq '-v') {
shift @ARGV;
usage () if $#ARGV < 0;
if ($ARGV[0] =~ /^2c?/) {
$snmp_version = 2;
} elsif ($ARGV[0] eq '1') {
$snmp_version = 1;
} else {
usage ();
}
}
shift @ARGV;
}
my $hostname = shift @ARGV || usage ();
my $community = shift @ARGV || 'public';
usage () if $#ARGV >= 0;
my %ugly_oids = qw(sysDescr.0 1.3.6.1.2.1.1.1.0
sysContact.0 1.3.6.1.2.1.1.4.0
sysUptime.0 1.3.6.1.2.1.1.3.0
ipForwarding.0 1.3.6.1.2.1.4.1.0
);
my %pretty_oids;
foreach (keys %ugly_oids) {
$ugly_oids{$_} = encode_oid (split (/\./, $ugly_oids{$_}));
$pretty_oids{$ugly_oids{$_}} = $_;
}
srand();
my $session = ($snmp_version == 1)
? SNMPv1_Session->open ($hostname, $community, 161,
undef, undef, undef, undef, $ipv4_only_p)
: SNMPv2c_Session->open ($hostname, $community, 161,
undef, undef, undef, undef, $ipv4_only_p)
or die "Couldn't open SNMP session to $hostname: $SNMP_Session::errmsg";
snmp_get ($session, qw(sysDescr.0 sysContact.0 sysUptime.0 ipForwarding.0));
$session->close ();
1;
sub snmp_get ($@) {
my($session, @oids) = @_;
my($response, $bindings, $binding, $value, $oid);
grep ($_ = $ugly_oids{$_}, @oids);
if ($session->get_request_response (@oids)) {
$response = $session->pdu_buffer;
($bindings) = $session->decode_get_response ($response);
while ($bindings ne '') {
($binding,$bindings) = decode_sequence ($bindings);
($oid,$value) = decode_by_template ($binding, "%O%@");
print $pretty_oids{$oid}," => ",
pretty_print ($value), "\n";
}
} else {
warn "SNMP problem: $SNMP_Session::errmsg\n";
}
}
sub usage () {
die "usage: $0 [-4] [-v (1|2)] hostname [community]";
}
|