我想开发简单的pysnmp命令响应器来监听我的测试仪器设备,从设备获取请求并用我自己的命令(Telnet命令)替换它在我的主机PC(Ubuntu)中并将其发送到评估板。过去在HOST上也支持SNMP,我想只保留设备上存在的PLUGIN的结构,只改变主机端。
请不要问我为什么这样做。 我准备了与SNMP中的设备一起使用的MIB文件。安装在设备上的PLUGIN知道如何工作并使用我知道的OID发送MIB OID,并根据请求在主机PC上用命令替换我自己的命令。 请参阅流程,例如评估板获取频率:
插入设备发送命令以获取频率(MIB OID): 1.3.6.1.4.1.55555.1.1.5.1.1.2.1
收听设备(SNMPv1端口161),从设备获取频率请求(1.3.6.1.4.1.55555.1.1.5.1.1.2.1)并将其替换为本地PC主机(Ubuntu):get_frequency_mycommand_telnet
如何使用Python 2.7进行最简单的操作?
答案 0 :(得分:1)
我建议您将脚本基于this example。
您可以实施自定义inside的NSPredicateEditorRowTemplate
通讯MIB object instance telnet
。确保设置正确的OID以使此对象成为SNMP可寻址的。
此外,添加对SNMP SET操作的支持,并可能将传入的值传递到__call__()
或您可能想要实现的其他方法。
如果您不需要,可能需要抓取IPv6 support。
请记住,使用此实现时__call__()
会阻塞,因此在__call__()
完成之前不会处理任何其他SNMP查询。您可以通过使您的telnet客户端异步来增强它以实现更高的性能和并发性。