Наваял вот такую простенькую вещь:% cat snmp_get
#!/usr/bin/perl -w
# vi:ts=4:sw=4use 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, но не тут-то было:% snmpwalk -v 1 -c public localhost hrSystemDate.0
HOST-RESOURCES-MIB::hrSystemDate.0 = STRING: 2006-3-4,2:25:55.0,+2:0
% ./snmp_get -o hrSystemDate.0 | od -h
0000000 d607 0403 2601 0010 022b 0a00
0000014Хотя для другого объекта - запросто:
% snmpwalk -v 1 -c public localhost dskDevice.1
UCD-SNMP-MIB::dskDevice.1 = STRING: /dev/sda3
% ./snmp_get -o dskDevice.1
/dev/sda3Как это можно объяснить?
Ну что, господа - неужто некому ответить?
Ау, ЗНАТОКИ !!!
Помогайте ;)
Если кому-то будет нужно решение: http://www.perlmonks.org/?node_id=534693