0

我可以从我的机器上运行 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: 648161 iso.3.6.1.4.6 .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.1235.1.172.28. 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”

4

1 回答 1

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 站点提供了一堆示例

于 2013-08-05T07:16:44.927 回答