У меня возникли трудности с созданием «SNMP-агента» с использованием версии 7.1. библиотеки pysnmp.
вот мой код:
Код: Выделить всё
from pysnmp.carrier.asyncio.dgram import udp
from pysnmp.entity import engine, config
from pysnmp.entity.rfc3413 import cmdrsp, context
from pysnmp.smi import instrum, error
from pysnmp.proto.api import v2c
snmpEngine = engine.SnmpEngine()
config.addSocketTransport(
snmpEngine,
udp.DOMAIN_NAME,
udp.UdpTransport().open_server_mode(('127.0.0.1', 161))
)
config.add_v1_system(snmpEngine, 'my-area', 'public')
snmpContext = context.SnmpContext(snmpEngine)
class FileInstrumController(instrum.AbstractMibInstrumController):
def readVars(self, vars, acInfo=(None, None)):
for o,v in vars:
print(f"Reading oid: {o}")
if o == (1, 3, 6, 1, 4, 1, 50000, 1): # Check for custom OID
return [(o, v2c.OctetString(b"Custom Data Example"))]
else:
raise error.SmiError
snmpContext.register_context_name(
v2c.OctetString(''), # Context Name
FileInstrumController() # Management Instrumentation
)
cmdrsp.GetCommandResponder(snmpEngine, snmpContext)
snmpEngine.transport_dispatcher.job_started(1)
try:
snmpEngine.transport_dispatcher.run_dispatcher()
except:
snmpEngine.transport_dispatcher.close_dispatcher()
raise
Код: Выделить всё
line 43, in register_context_name
raise error.PySnmpError("Duplicate contextName %s" % contextName)
pysnmp.error.PySnmpError: Duplicate contextName b''
Я пробовал использовать версию 7.1 библиотеки pysnmp, и я ожидал, что она будет вести себя не так, поскольку я видел другие базовые примеры, и все они следуют этому базовому шаблону
Подробнее здесь: https://stackoverflow.com/questions/793 ... ersion-7-1