Ich versuche GET
einen bestimmten Wert mit PySNMP.PySNMP erhalten spezifischen Eintrag
Unten finden Sie ein kurzes Beispiel dot1dTpFdbAddress
des Gehens:
...
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
....
Jetzt möchte ich pysnmp verwenden, um den folgenden Eintrag zu erhalten:
14: dot1dTpFdbAddress.104.247.40.226.160.73 68:f7:28:e2:a0:49
Dies ist meine aktuellen Code: [email protected]
ist benötigt, um die Einträge in VLAN 110 zu erhalten.
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()))
Aber es gibt die folgende Fehlermeldung:
"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
Wie kann ich diese Arbeit machen? Muss ich den MAC irgendwie zu einem OCTET STRING
konvertieren?