summaryrefslogtreecommitdiff
path: root/perl/SNMP/examples/pingmib.pl
diff options
context:
space:
mode:
Diffstat (limited to 'perl/SNMP/examples/pingmib.pl')
-rwxr-xr-xperl/SNMP/examples/pingmib.pl46
1 files changed, 46 insertions, 0 deletions
diff --git a/perl/SNMP/examples/pingmib.pl b/perl/SNMP/examples/pingmib.pl
new file mode 100755
index 0000000..e6aa792
--- /dev/null
+++ b/perl/SNMP/examples/pingmib.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/env perl
+
+# Ping a host via the CISCO-PING-MIB. For more information about the
+# CISCO-PING-MIB, see also
+# http://tools.cisco.com/Support/SNMP/do/BrowseMIB.do?local=en&mibName=CISCO-PING-MIB.
+
+use strict;
+use SNMP;
+
+my $target = shift || die "no ping target supplied\n"; # numeric ip address
+my $host = shift || 'localhost';
+my $community = shift || 'private';
+
+{
+ my $sess = new SNMP::Session (DestHost => $host,
+ Community => $community,
+ Retries => 1);
+
+ my $dec = pack("C*",split /\./, $target);
+ my $oid = ".1.3.6.1.4.1.9.9.16.1.1.1";
+ my $row = "300";
+ my $res;
+
+ $res = $sess->set([
+ ["$oid.16", $row, 6, "INTEGER"],
+ ["$oid.16", $row, 5, "INTEGER"],
+ ["$oid.15", $row, "MoNDS", "OCTETSTR"],
+ ["$oid.2", $row, 1, "INTEGER"],
+ ["$oid.4", $row, 20, "INTEGER"],
+ ["$oid.5", $row, 150, "INTEGER"],
+ ["$oid.3", $row, $dec, "OCTETSTR"]]);
+ defined($res) || die "row creation failed";
+
+ $res = $sess->set([["$oid.16", $row, 1, "INTEGER"]]);
+ defined($res) || die "row activation failed";
+
+ sleep 30;
+ my ($sent, $received, $low, $avg, $high, $completed) = $sess->get([
+ ["$oid.9", $row], ["$oid.10", $row], ["$oid.11", $row],
+ ["$oid.12", $row], ["$oid.13", $row], ["$oid.14", $row]]);
+
+ printf "Packet loss: %d% (%d/%d)\n", (100 * ($sent-$received)) / $sent,
+ $received, $sent;
+ print "Average delay $avg (low: $low high: $high)\n";
+ $sess->set(["$oid.16", $row, 6, "INTEGER"]);
+}