#!/usr/bin/perl -w
# vi:ts=4:sw=4
use strict;
use Getopt::Long;
use SNMP::Simple;
our %opt = (
DestHost => 'localhost',
Community => 'public',
Version => 1,
Timeout => 1_000_000,
);
our $oid;
GetOptions(
'h|host=s' => \$opt{DestHost},
'c|community=s' => \$opt{Community},
'v|version=i' => \$opt{Version},
't|timeout=i' => \$opt{Timeout},
'o|oid=s' => \$oid,
);
our $snmp = SNMP::Simple->new(%opt);
print $snmp->get($oid), "\n";
####
% snmpwalk -v 1 -c public localhost dskDevice.1
UCD-SNMP-MIB::dskDevice.1 = STRING: /dev/sda3
% ./snmp_get -o dskDevice.1
/dev/sda3
####
% snmpwalk -v 1 -c public localhost hrSystemDate.0
HOST-RESOURCES-MIB::hrSystemDate.0 = STRING: 2006-3-6,16:18:27.0,+2:0
% ./snmp_get -o hrSystemDate.0|od -t x1
0000000 07 d6 03 06 10 12 1d 00 2b 02 00 0a
0000014
####
-Ih By default, the library will use DISPLAY-HINT information when
assigning values. This flag disables this behaviour. The result
is that instead of
snmpset localhost HOST-RESOURCES-MIB::hrSystemDate.0 = 2002-12-10,2:4:6.8
you will have to write
snmpset localhost HOST-RESOURCES-MIB::hrSystemData.0 x "07 D2 0C 0A 02 04 06 08"