python - Pysnmp 命令响应程序包装器

标签 python ubuntu pysnmp

我想开发简单的 pysnmp 命令响应器来监听我的测试仪器设备,获取来自设备的请求,并在我的主机 PC(Ubuntu)中用我自己的命令(Telnet 命令)替换它们并将其发送到评估板。过去HOST上也支持SNMP,我只想在设备上保留现有PLUGIN的结构,只更改主机端。

请不要问我为什么这样做。
我已经准备好与 SNMP 中的设备一起使用的 MIB 文件。安装在设备上的 PLUGIN 知道如何工作并使用我知道的 OID 发送 MIB OID,并根据请求需要用我自己在主机 PC 上的命令替换。
请参阅流程,例如从评估板获取频率:

Plugin in device send command to get frequency (MIB OID): 1.3.6.1.4.1.55555.1.1.5.1.1.2.1

Listen to Device (SNMPv1 port 161), get request(1.3.6.1.4.1.55555.1.1.5.1.1.2.1) for frequency from device and replace it in local PC Host(Ubuntu): get_frequency_mycommand_telnet



如何用 Python 2.7 以最简单的方式做到这一点?

最佳答案

让我建议您将脚本基于 this example .

你可以实现你的 telnet通讯 inside __call__()您的自定义MIB object instance .确保设置正确OID使该对象可通过 SNMP 寻址。

此外,添加对 SNMP SET 操作的支持,并可能将传入值传递到 __call__()或您可能想要实现的其他方法。

您可能想从头开始 IPv6 support如果你不需要它。

请记住,使用此实现 __call__()正在阻塞,因此在 __call__() 之前不会处理其他 SNMP 查询已经完成了。您可以通过使您的 telnet 客户端异步来提高它的性能和并发性。

关于python - Pysnmp 命令响应程序包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41570504/

相关文章:

linux - Windows 10 Linux 子系统。如何安装 MongoDB

xml - 如何在多个 xml 文件中搜索 linux 中两个标签之间出现的字符串?

linux - Ubuntu 自动安装 sh 脚本,如何将 apt-get 或其他命令的答案传递给配置选项?

python - PySNMP 错误 : pysnmp. smi.error.SmiError

python - readline 的构建轮失败 - 在 OSX 上安装 Rekall 时

python - 如何关闭 cherrypy 服务器?

python - 使用scrapy解析同一div下的网站

python - 不明白为什么我在python脚本中收到此错误

python - pysnmp 将后缀附加到对象标识

c++ - 图中最大独立集的递归程序