Im reitryng从某个网络交换机获取一些孩子,为此,Im使用一个名为pysnmp的purepyton库。它的安装没有问题。在
使用了一个有效的示例代码。在
from pysnmp.entity.rfc3413.oneliner import cmdgen
cmdGen = cmdgen.CommandGenerator()
datos = []
ip = 'theipaddress'
comunidad_snmp = 'thecomunityv2c'
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
cmdgen.CommunityData(comunidad_snmp),
cmdgen.UdpTransportTarget((ip, 161)),
'.1.3.6.1.2.1.1.1.0', # sysDescr.0
lookupNames=True, lookupValues=True
)
if errorIndication:
print(errorIndication)
elif errorStatus:
print(errorStatus)
else:
for name, val in varBinds:
datos.append({'nombre': name.prettyPrint(), 'valor': val.prettyPrint()})
print datos
我们的问题是,如果我在任何视图中复制这段代码,结果总是
^{pr2}$我们有什么需要补充的吗?。在
环境是6美分
可能是Django主机的SNMP/UDP查询被过滤了,而命令行测试却没有?在
深入研究:您的代码使用默认的、基于异步的传输调用pysnmp。如果Django(或它的一些组件)以非合作的方式使用asyncore,pysnmp/Django系统可能会以某种方式干扰。。。避免此类干扰的一种方法是使用您自己的pysnmp I/O套接字对象映射,如下所示:
另一个想法是启用pysnmp调试以查看其中发生的情况:
^{pr2}$还有其他不太详细的pysnmp调试标志(请参见pysnmp.debug). 在
相关问题 更多 >
编程相关推荐