pysnmp setCmd 似乎没有设置对象,但没有错误
pysnmp setCmd doesn't appear to set object, but no errors
我是 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
看来SET命令真的成功了。您得到的输出是您的 SNMP 代理 @remotedevice.com 报告的内容。所以这些应该是这些 OID 的新值。
您认为查询没有成功的原因是什么?可能是同时 运行 SNMP 管理器重置值?只是一个疯狂的想法...
顺便说一句,mpModel=1
表示 SNMP 版本 2c。以防万一您的 SNMP 代理更喜欢任何其他 SNMP 版本。
我是 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
看来SET命令真的成功了。您得到的输出是您的 SNMP 代理 @remotedevice.com 报告的内容。所以这些应该是这些 OID 的新值。
您认为查询没有成功的原因是什么?可能是同时 运行 SNMP 管理器重置值?只是一个疯狂的想法...
顺便说一句,mpModel=1
表示 SNMP 版本 2c。以防万一您的 SNMP 代理更喜欢任何其他 SNMP 版本。