pysnmp snmpwalk给时间错误

时间:2013-08-05 04:18:09

标签: snmp pysnmp

我可以从我的机器上运行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”

1 个答案:

答案 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'))

pysnmp site

提供了大量示例