微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python - pysnmp“NameError:名称'USM_AUTH_HMAC96_SHA'未定义”

如何解决Python - pysnmp“NameError:名称'USM_AUTH_HMAC96_SHA'未定义”

我在 Windows 上用 pysnmp 4.4.12 安装了 Python 2.7,我一直在探索这个例子

https://pysnmp.readthedocs.io/en/latest/examples/hlapi/v3arch/asyncore/sync/manager/cmdgen/snmp-versions.html#snmpv3-auth-sha-privacy-aes128

我收到此错误

authProtocol=USM_AUTH_HMAC96_SHA,NameError: name 'USM_AUTH_HMAC96_SHA' is not defined

例子:

from pysnmp.hlapi import *

iterator = getCmd(
    SnmpEngine(),UsmUserData('usr-sha-aes','authkey1','privkey1',authProtocol=USM_AUTH_HMAC96_SHA,privProtocol=USM_PRIV_CFB128_AES),UdpTransportTarget(('demo.snmplabs.com',161)),ContextData(),ObjectType(ObjectIdentity('SNMPv2-MIB','sysDescr',0))
)

errorIndication,errorStatus,errorIndex,varBinds = next(iterator)

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]))

解决方法

在 4.4.12 版本中,您应该使用不同的常量。

iterator = getCmd(
    SnmpEngine(),UsmUserData(self.log,self.auth_pass,self.priv_pass,authProtocol= hlapi.usmHMACSHAAuthProtocol,privProtocol=hlapi.usmAesCfb256Protocol),UdpTransportTarget((self.ip,161)),ContextData(),ObjectType(ObjectIdentity('SNMPv2-MIB','sysDescr',0))
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。