$UsRx = '1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288';
my %table; # Hash to store the results
my $res = $session->get_bulk_request(
-varbindlist => [ $UsRx ],
-callback => [ \&get_callback, \%table ],
-maxrepetitions => 80,
);
snmp_dispatcher();
if (!defined $res) {
printf "ERROR: %s\n", $session->error();
$session->close();
exit 1;
}
for my $oid (oid_lex_sort(keys %table)) {
printf "%s,%s,\n",
$index,
$table{$oid};
}
注:回調函數不是在這裏,但它是一個運行正確的問題似乎與get_bulk_request時需要一個單一的指數數據則忽略給定的指標並返回指數的數據,任何替代解決方案,也可以理解perl的SNMP get_bulk_request函數返回的所有數據的索引,而在終端的OID,snmpwalk的添加索引施加正確的索引數據並非所有
o/p :
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1337,-70
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1338,-75
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1339,-55
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1340,-60
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737289.1337,-75
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737289.1338,-75
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737289.1339,-60
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737289.1340,-65
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737290.1337,-80
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737290.1338,-70
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737290.1339,-65
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737290.1340,-65
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737291.1337,-65
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737291.1338,-55
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737291.1339,-50
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737291.1340,-45
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737293.1337,-15
Expected o/p :
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1337,-70
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1338,-75
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1339,-55
1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1340,-60
While this working fine with snmpwalk on terminal
[email protected]:~$ snmpwalk -v2c -C#543%we 23.9.4.67 1.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288
iso.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1337 = INTEGER: -70
iso.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1338 = INTEGER: -75
iso.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1339 = INTEGER: -55
iso.3.6.1.4.1.4491.2.1.20.1.4.1.3.737288.1340 = INTEGER: -60
爲了在這裏有任何幫助,我們需要知道'$ session'是什麼類型的對象。 –
my($ session,$ error)= Net :: SNMP-> session( -version =>'snmpv2c', -nonblocking => 1, -hostname => $ in_hostname, -community => $ in_community, -port => 161, -timeout => 3, -retries => 1 ); @DaveCross如果您熟悉perl snmp請求 –
請不要將代碼轉儲到註釋中。堆棧溢出評論不支持代碼格式。相反,請[編輯您的問題](https://stackoverflow.com/posts/45211610/edit)添加代碼。 –