Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 将pysnmp与privProtocol=usm3DESEDEPrivProtocol选项一起使用时出错_Python 2.7_Snmp_Pysnmp - Fatal编程技术网

Python 2.7 将pysnmp与privProtocol=usm3DESEDEPrivProtocol选项一起使用时出错

Python 2.7 将pysnmp与privProtocol=usm3DESEDEPrivProtocol选项一起使用时出错,python-2.7,snmp,pysnmp,Python 2.7,Snmp,Pysnmp,我想从配置了auth协议MD5和priv协议3DES的snmp设备获取信息 配置语句是 snmp服务器用户testuser testgroup v3 auth md5 authmd5pwd priv 3des privpwdes 用于访问设备的pysnmp代码为 from pysnmp.hlapi import * def get(mib): errorIndication, errorStatus, errorIndex, varBinds = next( getCmd(Sn

我想从配置了auth协议MD5和priv协议3DES的snmp设备获取信息

配置语句是 snmp服务器用户testuser testgroup v3 auth md5 authmd5pwd priv 3des privpwdes

用于访问设备的pysnmp代码为

from pysnmp.hlapi import *

def get(mib):
  errorIndication, errorStatus, errorIndex, varBinds = next(
      getCmd(SnmpEngine(),
             UsmUserData('nmsuser', 'authmd5pwd', 'privpwddes',
                         authProtocol=usmHMACMD5AuthProtocol,
                         privProtocol=usm3DESEDEPrivProtocol),
             UdpTransportTarget(('10.96.158.251', 161)),
             ContextData(),
             ObjectType(ObjectIdentity(mib)))
  )

  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(varBind[1])

if __name__ == "__main__":
  get('.1.3.6.1.2.1.1.5.0')
当我执行这个时,我得到

Traceback (most recent call last): File "pytest.py", line 24, in get('.1.3.6.1.2.1.1.5.0') File "pytest.py", line 11, in get ObjectType(ObjectIdentity(mib))) File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/hlapi/asyncore/sync/cmdgen.py", line 113, in getCmd File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/carrier/asyncore/dispatch.py", line 50, in runDispatcher pysnmp.error.PySnmpError: poll error: Traceback (most recent call last): ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/carrier/asyncore/dispatch.py", line 46, in runDispatcher use_poll=True, map=self.__sockMap, count=1) ; File "/usr/lib/python2.7/asyncore.py", line 220, in loop poll_fun(timeout, map) ; File "/usr/lib/python2.7/asyncore.py", line 201, in poll2 readwrite(obj, flags) ; File "/usr/lib/python2.7/asyncore.py", line 123, in readwrite obj.handle_error() ; File "/usr/lib/python2.7/asyncore.py", line 108, in readwrite obj.handle_read_event() ; File "/usr/lib/python2.7/asyncore.py", line 449, in handle_read_event self.handle_read() ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/carrier/asyncore/dgram/base.py", line 163, in handle_read self._cbFun(self, transportAddress, incomingMessage) ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/carrier/base.py", line 70, in _cbFun self, transportDomain, transportAddress, incomingMessage ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/entity/engine.py", line 152, in __receiveMessageCbFun self, transportDomain, transportAddress, wholeMsg ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/rfc3412.py", line 344, in receiveMessage statusInformation ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/rfc3412.py", line 533, in __expireRequest cachedParams['cbCtx']) ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/entity/rfc3413/cmdgen.py", line 104, in processResponsePdu (origSendRequestHandle, cbFun, cbCtx)) ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/rfc3412.py", line 153, in sendPdu pduVersion, PDU, expectResponse, sendPduHandle ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/mpmod/rfc3412.py", line 240, in prepareOutgoingMessage securityEngineId, securityName, securityLevel, scopedPDU ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/secmod/rfc3414/service.py", line 525, in generateRequestMsg None) ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/secmod/rfc3414/service.py", line 395, in __generateRequestOrResponseMsg (snmpEngineBoots, snmpEngineTime, None), dataToEncrypt ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/secmod/eso/priv/des3.py", line 117, in encryptData encryptKey, snmpEngineBoots ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/secmod/eso/priv/des3.py", line 77, in __getEncryptionKey preIV = privKey[24:32] ; File "/usr/local/lib/python2.7/dist-packages/pyasn1/type/univ.py", line 996, in __getitem__ return self.clone(self._value[i]) ; File "/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/rfc1902.py", line 202, in clone return univ.OctetString.clone(self, *args, **kwargs).setFixedLength(self.getFixedLength()) ; File "/usr/local/lib/python2.7/dist-packages/pyasn1/type/base.py", line 349, in clone return self.__class__(value, **initilaizers) ; File "/usr/local/lib/python2.7/dist-packages/pyasn1/type/univ.py", line 819, in __init__ base.AbstractSimpleAsn1Item.__init__(self, value, **kwargs) ; File "/usr/local/lib/python2.7/dist-packages/pyasn1/type/base.py", line 246, in __init__ raise exType('%s at %s' % (exValue, self.__class__.__name__)) ;ValueConstraintError: , > failed at: ValueConstraintError(" failed at: ValueConstraintError('',)",) at OctetString 回溯(最近一次呼叫最后一次): 文件“pytest.py”,第24行,在 获取(“.1.3.6.1.2.1.1.5.0”) get中第11行的文件“pytest.py” ObjectType(ObjectIdentity(mib))) getCmd中的文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/hlapi/asyncore/sync/cmdgen.py”,第113行 文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/carrier/asyncore/dispatch.py”,第50行,在runDispatcher中 pysnmp.error.PySnmpError:轮询错误:回溯(最近一次调用): ; runDispatcher中的文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/carrier/asyncore/dispatch.py”,第46行 使用\u poll=True,map=self.\u sockMap,count=1) ; 文件“/usr/lib/python2.7/asyncore.py”,第220行,在循环中 投票乐趣(超时,地图) ; poll2中第201行的文件“/usr/lib/python2.7/asyncore.py” 读写(对象、标志) ; readwrite中的文件“/usr/lib/python2.7/asyncore.py”,第123行 对象句柄_错误() ; 文件“/usr/lib/python2.7/asyncore.py”,第108行,读写 对象处理读取事件() ; handle\u read\u事件中的文件“/usr/lib/python2.7/asyncore.py”,第449行 self.handle_read() ; 文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/carrier/asyncore/dgram/base.py”,第163行,在handle_read中 self.\u cbFun(self、transportAddress、incomingMessage) ; 文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/carrier/base.py”,第70行,在 self、transportDomain、transportAddress、incomingMessage ; 文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/entity/engine.py”,第152行,在uu receiveMessageCbFun中 self、transportDomain、transportAddress、wholeMsg ; 文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/rfc3412.py”,第344行,在receiveMessage中 状态信息 ; 文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/rfc3412.py”,第533行,在 cachedParams['cbCtx']) ; processResponsePdu中的文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/entity/rfc3413/cmdgen.py”,第104行 (origSendRequestHandle、cbFun、cbCtx)) ; sendPdu中的文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/rfc3412.py”,第153行 PDU版本,PDU,预期响应,发送PDU处理 ; 文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/mpmod/rfc3412.py”,第240行,在prepareOutgoingMessage中 securityEngineId、securityName、securityLevel、scopedPDU ; GenerateRequestSG中的文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/secmod/rfc3414/service.py”,第525行 (无) ; 文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/secmod/rfc3414/service.py”,第395行,位于uu generateRequestOrResponseMsg中 (snmpEngineBoots,snmpEngineTime,None),数据加密 ; encryptData中的文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/secmod/eso/priv/des3.py”,第117行 加密密钥,snmpEngineBoots ; 文件“/usr/local/lib/python2.7/dist-packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/secmod/eso/priv/des3.py”,第77行,在 preIV=私钥[24:32] ; 文件“/usr/local/lib/python2.7/dist packages/pyasn1/type/univ.py”,第996行,在__ 返回self.clone(self.\u值[i]) ; 文件“/usr/local/lib/python2.7/dist packages/pysnmp-4.4.3-py2.7.egg/pysnmp/proto/rfc1902.py”,第202行,克隆中 返回univ.OctetString.clone(self,*args,**kwargs).setFixedLength(self.getFixedLength()) ; 文件“/usr/local/lib/python2.7/dist packages/pyasn1/type/base.py”,第349行,在clone中 返回self.\uuuu类(值,**初始化器) ; 文件“/usr/local/lib/python2.7/dist packages/pyasn1/type/univ.py”,第819行,在__ base.AbstractSimpleAsn1Item.\uuuuu init\uuuuuu(self,value,**kwargs) ; 文件“/usr/local/lib/python2.7/dist-packages/pyasn1/type/base.py”,第246行,在__ 提升exType(“%s”位于“%s%”(exValue,self.\uuuuuuuu类\uuuuuuuu名称) ;ValueConstraintError:,>在以下位置失败:ValueConstraintError(“在以下位置失败:ValueConstraintError(“”,),)在OctetString
当将3DE与短哈希HMAC(如MD5)一起使用时,似乎是pysnmp 4.4.3中的一个错误

您可以使用其他一些生成至少32个八位字节长散列的AUTH算法,也可以从其中提取固定pysnmp(4.4.4)


一旦您更改用户名/密码,您的脚本似乎可以使用。

非常感谢。随着修复工作的顺利进行。pysnmp(4.4.4)将于何时发布?