pysnmp setCmd似乎没有设置对象,但没有错误

时间:2019-04-01 03:38:58

标签: python set pysnmp

我是SNMP和pysnmp的新手。我编写了一些快速代码,为一些MIB设置了一些值,但似乎没有用。我正在使用的OID在旧的perl脚本中起作用了,而我们不再使用了,所以我知道我有合适的OID。

我想念什么?我没有多余的头发了! :)19

示例代码:

#!/usr/local/bin/python2.7

from pysnmp.hlapi import * # For SNMP

errorIndication, errorStatus, errorIndex, varBinds = next(
      setCmd(SnmpEngine(),
             CommunityData("myCommunity", mpModel=1),
             UdpTransportTarget(("remotedevice.com",161)),
             ContextData(),
             ObjectType(ObjectIdentity(".1.3.6.1.4.1.4115.1.8.1.10.5.1.0"), Integer(3)) ,
             ObjectType(ObjectIdentity(".1.3.6.1.4.1.4115.1.8.1.10.5.2.0"), OctetString("192.168.1.1")) ,
             ObjectType(ObjectIdentity(".1.3.6.1.4.1.4115.1.8.1.10.5.3.0"), OctetString("backup")) ,
             ObjectType(ObjectIdentity(".1.3.6.1.4.1.4115.1.8.1.10.5.6.0"), Integer(3)) )
)

print(errorIndication)
print(errorStatus)
print(errorIndex)
for bind in varBinds:
    print(bind)

输出:

None
0
0
SNMPv2-SMI::enterprises.4115.1.8.1.10.5.1.0 = 3
SNMPv2-SMI::enterprises.4115.1.8.1.10.5.2.0 = 192.168.1.1
SNMPv2-SMI::enterprises.4115.1.8.1.10.5.3.0 = backup
SNMPv2-SMI::enterprises.4115.1.8.1.10.5.6.0 = 3

1 个答案:

答案 0 :(得分:0)

看起来SET命令实际上成功了。您得到的输出是您的SNMP代理@ remotedevice.com报告的结果。因此,这些应该是这些OID的新值。

是什么让您认为查询无法解决?可以是同时运行的SNMP管理器将值重置回吗?只是一个疯狂的想法...

BTW,mpModel=1表示SNMP版本2c。以防万一您的SNMP代理更喜欢其他任何SNMP版本。