Python pysnmp.smi.error.SmiError:无符号

Python pysnmp.smi.error.SmiError:无符号,python,snmp,cisco,pysnmp,Python,Snmp,Cisco,Pysnmp,我似乎无法让这个脚本工作。非常感谢您的帮助 以下是我不断发现的错误: ./snmptester.py Traceback (most recent call last): File "./snmptester.py", line 35, in <module> cmdgen.MibVariable(mib, oid), File "/usr/lib/python2.6/site-packages/pysnmp/entity/rfc3413/oneliner/cmdge

我似乎无法让这个脚本工作。非常感谢您的帮助

以下是我不断发现的错误:

./snmptester.py
Traceback (most recent call last):
  File "./snmptester.py", line 35, in <module>
    cmdgen.MibVariable(mib, oid),
  File "/usr/lib/python2.6/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 370, in getCmd
    kwargs.get('contextName', null)
  File "/usr/lib/python2.6/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 207, in getCmd
    self.makeReadVarBinds(varNames),
  File "/usr/lib/python2.6/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 150, in makeReadVarBinds
    self.mibViewController, oidOnly=True
  File "/usr/lib/python2.6/site-packages/pysnmp/entity/rfc3413/oneliner/mibvar.py", line 160, in resolveWithMib
    self.__modName, self.__symName
  File "/usr/lib/python2.6/site-packages/pysnmp/smi/builder.py", line 298, in importSymbols
    'No symbol %s::%s at %s' % (modName, symName, self)
pysnmp.smi.error.SmiError: No symbol CISCO-REMOTE-ACCESS-MONITOR-MIB::ciscoRasMonitorMIBObjects.crasActivity.crasSessionTable.crasSessionEntry.crasLocalAddress at <pysnmp.smi.builder.MibBuilder instance at 0x7f5e50d51170>
我对python还是相当陌生,所以我很难破译这个错误

在进行这些更改后,我现在得到以下错误:

Traceback (most recent call last):
  File "./snmptester.py", line 32, in <module>
    lookupNames=True, lookupValues=True
  File "/usr/lib/python2.6/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 475, in nextCmd
    varBindHead = [ univ.ObjectIdentifier(x[0]) for x in self.__asynCmdGen.makeReadVarBinds(varNames) ]
  File "/usr/lib/python2.6/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 150, in makeReadVarBinds
    self.mibViewController, oidOnly=True
  File "/usr/lib/python2.6/site-packages/pysnmp/entity/rfc3413/oneliner/mibvar.py", line 80, in resolveWithMib
    mibViewController.mibBuilder.loadModules(*self.__modNamesToLoad)
  File "/usr/lib/python2.6/site-packages/pysnmp/smi/builder.py", line 251, in loadModules
    'MIB module \"%s\" load error: %s' % (modPath, sys.exc_info()[1])
pysnmp.smi.error.SmiError: MIB module "/usr/lib/python2.6/site-packages/pysnmp/smi/mibs/instances/__TRS-MIB.pyc" load error: No module TRS-MIB loaded at <pysnmp.smi.builder.MibBuilder instance at 0x7f18dbc36d88>
回溯(最近一次呼叫最后一次):
文件“/snmptester.py”,第32行,在
lookupNames=True,lookupValues=True
文件“/usr/lib/python2.6/site packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py”,第475行,位于nextCmd中
varBindHead=[univ.ObjectIdentifier(x[0]),用于self中的x。\u asynchmdgen.makeReadVarBinds(varNames)]
makeReadVarBinds中的文件“/usr/lib/python2.6/site packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py”,第150行
self.mibViewController,oidOnly=True
resolveWithMib中的文件“/usr/lib/python2.6/site packages/pysnmp/entity/rfc3413/oneliner/mibvar.py”,第80行
mibViewController.mibBuilder.loadModules(*self.\uu modNamesToLoad)
loadModules中的文件“/usr/lib/python2.6/site packages/pysnmp/smi/builder.py”,第251行
“MIB模块\%s\”加载错误:%s%”(modPath,sys.exc_info()[1])
pysnmp.smi.error.smirror:MIB module”/usr/lib/python2.6/site packages/pysnmp/smi/mibs/instances/_-TRS-MIB.pyc“加载错误:未加载模块TRS-MIB”

我试图触摸TRS-MIB文件,但它仍然抱怨。有没有一种方法我需要构建一个TRS-MIB文件?

使用pysnmp,MIB有一个平面结构。因此,您可以通过其符号名称来寻址任何MIB对象,如:

CISCO-REMOTE-ACCESS-MONITOR-MIB::ciscoRasMonitorMIBObjects
CISCO-REMOTE-ACCESS-MONITOR-MIB::crasActivity
CISCO-REMOTE-ACCESS-MONITOR-MIB::crasSessionTable
CISCO-REMOTE-ACCESS-MONITOR-MIB::crasSessionEntry
CISCO-REMOTE-ACCESS-MONITOR-MIB::crasLocalAddress
因此,我将您的oid分配更改为:

oid = 'crasLocalAddress'
还要记住,由于您要查询SNMP表对象,因此必须提供其列实例ID。例如:

cmdgen.MibVariable(mib, oid, (1,2,3,4))
哪一个是普通子OID或

cmdgen.MibVariable(mib, oid, '0.0.0.0')
它将由pysnmp解释,并根据SMI索引子句规则转换为子OID


或者,您可以通过运行nextCmd()方法(不向MibVariable()提供实例信息)来确定代理实际拥有的实例ID部分,这样整个列都将返回。

您可能需要使用build pysnmp MIB脚本将TRS-MIB模块编译成pysnmp表单。然后将模块放入pysnmp MIB搜索路径。
cmdgen.MibVariable(mib, oid, '0.0.0.0')