我正在嘗試利用PySNMP查詢HP Procurve交換機。到目前爲止,我已通過mibdump.py將hpicfChassis.mib轉換爲HP-ICF-CHASSIS.py,並確認此MIB處於正確的路徑中。我曾嘗試過使用和不使用MibBuilder代碼,但仍然遇到錯誤。HP Procurve上的PySNMP MIB查詢不起作用
我試圖在此MIB中查詢hpicfSlotDescr的SNMP值,以及其他SNMP值,它只是與以下錯誤消息炸彈:
pysnmp.smi.error.SmiError:實例指數(0)至對象'hpicfSlotDescr'上的OID轉換失敗:ConstraintsIntersection(ConstraintsIntersection(ConstraintsIntersection(),ValueRangeConstraint(-2147483648,21247483647)),ValueRangeConstraint(1,16))失敗:「ValueRangeConstraint(1,16)失敗:」0「在Integer32
我已經完成了數據包捕獲,並且當使用hpicfSlotDescr(最多可以返回6個值)時,SNMP查詢從不會向交換機生成請求。
當查詢不同的SNMP值(例如hpicfEntityIndex,期望1返回值)時,我看到請求已發出,但交換機從未回覆。在腳本和交換機上的社區名稱匹配,我只是迷失了,並想知道我想要完成的是否可行,如果是的話,我錯過了哪些主要組件?
在此先感謝!
from pysnmp.hlapi import *
from pysnmp.smi import builder
#MIBDIR = '/Python/Lib/site-packages/pysnmp_mibs'
#mibBuilder = builder.MibBuilder()
#mibSources = mibBuilder.getMibSources() + (builder.DirMibSource(MIBDIR),)
#mibBuilder.setMibSources(*mibSources)
#mibBuilder.loadModules('HP-ICF-CHASSIS')
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData('<comm name>', mpModel=1),
UdpTransportTarget(('<ipv4 address>', 161)),
ContextData(),
ObjectType(ObjectIdentity('HP-ICF-CHASSIS', 'hpicfSlotDescr', 0)))
)
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]))
這是修復,非常感謝。 – RM092