首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PySNMP获取特定条目

PySNMP获取特定条目
EN

Stack Overflow用户
提问于 2017-01-31 22:07:21
回答 1查看 389关注 0票数 1

我正在尝试使用PySNMP来GET一个特定值。

下面是一个简短的dot1dTpFdbAddress遍历示例

代码语言:javascript
复制
    ...
    11: dot1dTpFdbAddress.104.247.40.225.176.200 68:f7:28:e1:b0:c8
    12: dot1dTpFdbAddress.104.247.40.226.148.111 68:f7:28:e2:94:6f
    13: dot1dTpFdbAddress.104.247.40.226.158.32 68:f7:28:e2:9e:20
    14: dot1dTpFdbAddress.104.247.40.226.160.73 68:f7:28:e2:a0:49
    ....

现在,我想使用PySNMP获取以下条目:

14: dot1dTpFdbAddress.104.247.40.226.160.73 68:f7:28:e2:a0:49

这是我当前的代码:需要...@110来获取VLAN110中的条目。

代码语言:javascript
复制
from pysnmp.entity.rfc3413.oneliner import cmdgen

cmdGen = cmdgen.CommandGenerator()

errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
    cmdgen.UsmUserData('commro@110'),
    cmdgen.UdpTransportTarget(('SWITCH1', 161)),
    cmdgen.MibVariable('BRIDGE-MIB', 'dot1dTpFdbAddress', '68:f7:28:e2:a0:49'),
    lookupNames=True, lookupValues=True
)

# Check for errors and print out results
if errorIndication:
    print(errorIndication)
else:
    if errorStatus:
        print('%s at %s' % (
            errorStatus.prettyPrint(),
            errorIndex and varBinds[int(errorIndex)-1] or '?'
            )
        )
    else:
        for name, val in varBinds:
            print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))

但它返回以下错误:

代码语言:javascript
复制
"C:\Program Files (x86)\Python35-32\python.exe" C:/scripts/git/AYIT/network/snmp_portinfo/portsec.py
Traceback (most recent call last):
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\constraint.py", line 29, in __call__
    self._testValue(value, idx)
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\constraint.py", line 108, in _testValue
    raise error.ValueConstraintError(value)
pyasn1.type.error.ValueConstraintError: b'68:f7:28:e2:a0:49'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\constraint.py", line 29, in __call__
    self._testValue(value, idx)
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\constraint.py", line 183, in _testValue
    v(value, idx)
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\constraint.py", line 32, in __call__
    '%s failed at: \"%s\"' % (self, sys.exc_info()[1])
pyasn1.type.error.ValueConstraintError: ValueSizeConstraint(6, 6) failed at: "b'68:f7:28:e2:a0:49'"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\base.py", line 30, in _verifySubtypeSpec
    self._subtypeSpec(value, idx)
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\constraint.py", line 32, in __call__
    '%s failed at: \"%s\"' % (self, sys.exc_info()[1])
pyasn1.type.error.ValueConstraintError: ConstraintsIntersection(ConstraintsIntersection(ConstraintsIntersection(), ValueSizeConstraint(0, 65535)), ValueSizeConstraint(6, 6)) failed at: "ValueSizeConstraint(6, 6) failed at: "b'68:f7:28:e2:a0:49'""

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\smi\rfc1902.py", line 500, in resolveWithMib
  File "<string>", line 1172, in getInstIdFromIndices
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\proto\rfc1902.py", line 195, in clone
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\univ.py", line 328, in clone
    value, tagSet, subtypeSpec, encoding, binValue, hexValue
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\univ.py", line 312, in __init__
    base.AbstractSimpleAsn1Item.__init__(self, value, tagSet, subtypeSpec)
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\base.py", line 75, in __init__
    self._verifySubtypeSpec(value)
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pyasn1\type\base.py", line 33, in _verifySubtypeSpec
    raise c('%s at %s' % (i, self.__class__.__name__))
pyasn1.type.error.ValueConstraintError: ConstraintsIntersection(ConstraintsIntersection(ConstraintsIntersection(), ValueSizeConstraint(0, 65535)), ValueSizeConstraint(6, 6)) failed at: "ValueSizeConstraint(6, 6) failed at: "b'68:f7:28:e2:a0:49'"" at MacAddress

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/scripts/git/AYIT/network/snmp_portinfo/portsec.py", line 9, in <module>
    lookupNames=True, lookupValues=True
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\entity\rfc3413\oneliner\cmdgen.py", line 181, in getCmd
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\hlapi\asyncore\sync\cmdgen.py", line 107, in getCmd
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\hlapi\asyncore\cmdgen.py", line 127, in getCmd
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\hlapi\varbinds.py", line 36, in makeVarBinds
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\smi\rfc1902.py", line 838, in resolveWithMib
  File "C:\Program Files (x86)\Python35-32\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\smi\rfc1902.py", line 504, in resolveWithMib
pysnmp.smi.error.SmiError: Instance index ('68:f7:28:e2:a0:49',) to OID convertion failure at object 'dot1dTpFdbAddress': ConstraintsIntersection(ConstraintsIntersection(ConstraintsIntersection(), ValueSizeConstraint(0, 65535)), ValueSizeConstraint(6, 6)) failed at: "ValueSizeConstraint(6, 6) failed at: "b'68:f7:28:e2:a0:49'"" at MacAddress

我怎么才能让它工作呢?我是否需要以某种方式将MAC转换为OCTET STRING

EN

回答 1

Stack Overflow用户

发布于 2017-02-02 07:30:12

这应该适用于pysnmp 4.3.3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41959610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档