我正在使用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
”的设定值。我知道setvalue的长度和类型都是正确的,因为我在MIB浏览器中使用过它。
答案 0 :(得分:0)
有几件事:
1)您可以使用本机python接口而不是调用系统命令。事实上有多种选择,包括pysnmp(在python中完成)和Net-SNMP's python module (done in C)。
2)Net-SNMP snmpset
命令需要直接的十六进制代码而不包含任何:s。因此,如果您删除:s,您可能会发现它可以正常工作。