我正在使用 python 向 snmp 代理发送 snmpset 消息。我有正确的 OID,因为我可以使用它通过 snmpget 获取数据。但是,它不会设置数据。我以十六进制格式(两个十六进制值)发送由冒号分隔的八位字节。我可能必须在它周围加上撇号,对吗?这是我发送的行的示例
foo = os.popen("snmpset -v 2c -c private 192.1.55.222 .1.2.6.5.4.1.24022.4.27.1.6.4.4 x 00:00:04:cf:00:00:00:00:00:00")
如您所见,我正在发送类型为 x 的 Octet 字符串。
谁能猜猜我应该如何传入“00:00:04:cf:00:00:00:00:00:00”的设定值。我知道设置值的长度和类型都正确,因为我已经在 MIB 浏览器中使用过它。
请您参考如下方法:
一些事情:
1) 您可以使用 native python 接口(interface)来代替调用系统命令。实际上有多种选择,包括 pysnmp(在 python 中完成)和 Net-SNMP's python module (done in C) .
2) Net-SNMP snmpset 命令需要直接的十六进制代码,其中没有任何 :s。因此,如果您删除 :s,您可能会发现它会起作用。
