gpt4 book ai didi

python - snmpwalk 与 python scrypt

转载 作者:太空宇宙 更新时间:2023-11-03 17:09:01 26 4
gpt4 key购买 nike

我尝试构建一个 python 脚本来从 snmp 传感器获取温度。

如果我在 Linux 终端上使用此命令行

snmpwalk 10.100.2.21 -On -v 1 -c public .1.3.6.1.4.1.28507.14.1.3.1.1.2.2

输出正确:

.1.3.6.1.4.1.28507.14.1.3.1.1.2.2 = INTEGER: 225

事实上它返回温度:-) 22.5 °C但我必须使用 python 脚本:

#!/usr/bin/python
# -*- coding: latin-1 -*-
import netsnmp
#oid = '.1.3.6.1.4.1.28507.14.1.3.1.1.2.2'
oid = netsnmp.VarList(netsnmp.Varbind('.1.3.6.1.4.1.28507.14.1.3.1.1.2.2'))
print ("Hello !!!")
res = netsnmp.snmpwalk(oid, Version=1, DestHost='10.100.2.21', Community='public')
print res

我不知道为什么,我的脚本只返回:

 "()"

你有一些IDE吗?

谢谢

最佳答案

netsnmp 的构造不是这样工作的。据我所知,在查询之前需要打开一个snmp session 。

我通常这样做:

session=netsnmp.Session(DestHost=myip, Version=2, Community='public', RemotePort=161)

然后您可以检查是否获得了正确的 session :

if session:
continue
else:
print sys.exc_info()
exit(1)

最后:

myoid=netsnmp.VarList('.1.3.6.1.4.1.28507.14.1.3.1.1.2.2')
res=snmp.walk(myoid)
for i in res:
print i

我正在使用 for 循环,因为您选择了 snmp.walk(),它可能会返回许多行值。您可以使用 snmp.get() 代替

关于python - snmpwalk 与 python scrypt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34309015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com