Pysnmp 命令响应器包装器

Pysnmp Command responder wrapper

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

请不要问我为什么要那样做。 我已经准备好与 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 the __call__() of your custom MIB object instance. Make sure to set proper OID 以使该对象可通过 SNMP 寻址。

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

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

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