我的pysnmp软件包有问题。
我想从Huawei MA5600连接到OLT设备。我的MIB为文本格式* .mib,其目的是获得温度,能耗等
我有以下代码
from pysnmp.hlapi import *
from pysmi import debug
#debug.setLogger(debug.Debug('compiler'))
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData('MyCommunity'),
UdpTransportTarget(('192.168.1.2', 161)),
ContextData(),
ObjectType(ObjectIdentity('1.3.6.1.2.1.1.6.0')),
ObjectType(ObjectIdentity('1.3.6.1.2.1.1.1.0')),
ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.10')),
ObjectType(ObjectIdentity('1.3.6.1.4.1.2011.2.6.7.1.1.1.1.11'))\
.addAsn1MibSource('file:///home/devel/mib/',
'file:///home/devel/mib'
'http://mibs.snmplabs.com/asn1/@mib@',
'http://mibs.snmplabs.com/asn1/',
'file:///home/devel/mib/public/',
'file:///home/devel/mib/public')
)
)
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
在这种情况下,我有以下答案:
(sent) C:\DESARROLLOS\system>python v2c-get.py
SNMPv2-MIB::sysLocation.0 = EPL
SNMPv2-MIB::sysDescr.0 = Huawei Integrated Access Software
SNMPv2-SMI::mib-2.2.2.1.10 = No Such Instance currently exists at this OID
SNMPv2-SMI::enterprises.2011.2.6.7.1.1.1.1.11 = No Such Instance currently exists at this OID
我也尝试过使用addMibSource函数添加python mib,我有pysnmp_mibs包,但是它也不起作用。
应该注意的是,通过命令我可以获取所请求的信息:
snmpwalk -v 2c -c MyCommunity 192.168.1.2 1.3.6.1.4.1.2011.2.6.7.1.1.1.1.1
应该注意的是,通过该命令,我可以获得所需的信息。
snmpwalk -v 2c -c MyCommunity 192.168.1.2 1.3.6.1.4.1.2011.2.6.7.1.1.1.1.1
如果有人碰巧遇到类似事情并且知道该怎么办,我将不胜感激。我正在使用python 3.6,pysmi == 0.3.2,pysnmp == 4.4.6 和pysnmp-mibs == 0.1.6
答案 0 :(得分:0)
如果您认为应该在响应中获得一些价值而不是“没有这样的实例”,那么问题就在于您正在查询设备上不存在的对象(OID)或您无权访问该对象
如果您希望将响应中的OID解析为人性化的名称,则应预先加载定义这些OID的MIB,例如ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.10'))。loadMibs('MY-MIB','MY-OTHER-MIB')。
无论哪种方式,最好的解决方案都是按名称查询对象:
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysLocation', 0))
...而不是通过OID。按名称查询会自动加载您引用的MIB。
快捷文档是here。