Python中的snmpset

2 投票
1 回答
2987 浏览
提问于 2025-04-17 08:00

我正在使用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的八位字节字符串。

有没有人能猜一下我应该如何传递设置值"00:00:04:cf:00:00:00:00:00:00"?我知道这个设置值的长度和类型是正确的,因为我在MIB浏览器中使用过它。

1 个回答

0

有几点需要注意:

1) 你可以使用Python自带的接口,而不是调用系统命令。其实有好几种选择,比如pysnmp(用Python写的)和Net-SNMP的Python模块(用C写的)

2) Net-SNMP的snmpset命令需要的是纯十六进制代码,不要有冒号。所以如果你去掉冒号,可能就能正常工作了。

撰写回答