2017-01-31 4 views
0

GET私はPySNMPを使用して特定の値を試しています。以下はPySNMPは特定のエントリを取得します

dot1dTpFdbAddressを歩くの短い例です:

... 
    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

これは私の現在のコードです: [email protected]がありますVLAN 110のエントリを取得するために必要です。

from pysnmp.entity.rfc3413.oneliner import cmdgen 

cmdGen = cmdgen.CommandGenerator() 

errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
    cmdgen.UsmUserData('[email protected]'), 
    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())) 

しかし、それは次のエラーが返されます。

"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に変換する必要がありますか?

答えて

関連する問題