我可以从我的机器上运行snmpwalk
snmpwalk -c public -v 2c junipertestrtr 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.1来自同一台计算机的命令行我得到正确的输出
iso.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.1.172.28.254.83.1.172.16.25.82 = Gauge32:64902 iso.3.6.1.4.1.2636.5.1.1.2.1.1.1.13。 0.1.172.28.254.135.1.172.17.25.134 = Gauge32:64902 iso.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.1.172.28.255.135.1.172.29.255.136 = Gauge32:64861 iso.3.6。 1.4.1.2636.5.1.1.2.1.1.1.13.0.1.172.28.255.135.1.172.28.255.137 = Gauge32:64861 iso.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.1.172.28.255.135.1.172 .28.255.138 = Gauge32:64861 iso.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.1.10.1.1.1.1.10.1.1.2 = Gauge32:64810
然而,当我尝试从pysnmp运行相同的操作时,我会失败
from pysnmp.entity.rfc3413.oneliner import cmdgen
from pysnmp.smi import *
cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBind = cmdGen.nextCmd(
cmdgen.CommunityData('public', 1),
cmdgen.UdpTransportTarget(('junipertestrtr', 161)),
(1,3,6,1,4,1,2636,5,1,1,2,1,1,1,13,0,1),
)
print errorIndication, errorStatus
for varBindTableRow in varBind:
for name, val in varBindTableRow:
print name, val
我收到以下错误消息 “requestTimedOut 0”
答案 0 :(得分:0)
你应该只使用:
cmdgen.CommunityData('public')
或:
cmdgen.CommunityData('public', mpModel=1) # mpModel specifies SNMP protocol version
或:
cmdgen.CommunityData('my-snmp-agent', 'public', 1)
你还可以在脚本开头启用pysnmp调试,看看幕后发生了什么:
debug.setLogger(debug.Debug('msgproc', 'secmod'))
提供了大量示例