python - 使用虚拟数据模拟 SNMP 代理
问题描述
我想用三个 OID 模拟一个简单的设备。我还没有 MIB,只有 OID。我基本上想在 Python 中重新创建设备以进行测试。因此我用 pysnmp 创建了一个简单的代理:
from pysnmp.hlapi import SnmpEngine
from pysnmp.entity import engine, config
from pysnmp.entity.rfc3413 import cmdrsp, context
from pysnmp.carrier.asynsock.dgram import udp
from pysnmp.smi import instrum
from pysnmp.proto.api import v2c
snmpEngine = SnmpEngine()
config.addSocketTransport(
snmpEngine,
udp.domainName,
udp.UdpTransport().openServerMode(('127.0.0.1', 161))
)
config.addV3User(
snmpEngine, 'goldrush'
)
config.addVacmUser(snmpEngine, 3, 'usr-md5-des', 'authPriv',
(1, 4, 1, 2, 3, 4), (1, 4, 1, 2, 3, 4))
snmpContext = context.SnmpContext(snmpEngine)
class EchoMibInstrumController(instrum.AbstractMibInstrumController):
def readVars(self, vars, acInfo=(None, None)):
return vars
snmpContext.registerContextName(
v2c.OctetString('my-context'), # Context Name
EchoMibInstrumController() # Management Instrumentation
)
cmdrsp.GetCommandResponder(snmpEngine, snmpContext)
snmpEngine.transportDispatcher.jobStarted(1)
try:
snmpEngine.transportDispatcher.runDispatcher()
except:
snmpEngine.transportDispatcher.closeDispatcher()
raise
但我不明白在哪里可以将虚拟数据输入其中 - 当我发出 GET-Request 时,我只得到我要求的这个 OID 在代理上不存在的答案。我通读了许多教程,但它们经常使用 MIB,我目前无法理解。我从来没有看到他们添加任何值..
pysnmp 文档已关闭,因此我无法获得任何真实信息。有人可以给我提示如何创建一个简单的代理吗?
解决方案
推荐阅读
- reactjs - React-Native 渲染太早了?
- styles - 属性“颜色”在位于表单视图内的树标记中不起作用
- python-3.x - 最小化 --onedir 选项的 pyinstaller 文件
- java - WildFly add-user.bat 系统找不到指定的路径
- chronicle - 启动后持久化文件是否加载到 RAM 内存中?
- dart - 颤振医生什么也没显示
- javascript - 使用 ajax 使用 asp.net 将数据保存到 sql server
- angular - 根据 api 响应关闭对话框组件
- python - 在 ubuntu 上安装 pygame-sdl2 依赖项时出错
- vb.net - 如何将此 Crystal Report 公式编写为 SSRS 表达式?