【发布时间】:2018-02-15 19:16:54
【问题描述】:
我正在使用 python 开发一个 SNMP 模拟器,我正在尝试遵循 snmplabs.com 中的一些示例。我在运行来自 snmplabs.com 的示例脚本之一时遇到问题,该脚本在 demo.snmplabs.com 的公开可用的 SNMP 命令响应程序中对 sysDescr.0 对象执行 SNMP GET 操作。
我已经通过 pip 下载了所有需要的包。
这是http://snmplabs.com/pysnmp/quick-start.html 上提供的以下代码(如果格式错误,请见谅,这里相当新):
from pysnmp.hlapi import *
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData('public', mpModel=0),
UdpTransportTarget(('demo.snmplabs.com', 161)),
ContextData(),
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)))
)
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) -1][0] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
您可以从他们的网站下载源代码,该文件名为 v1-get1.py。我正在使用以下命令在我的 Macbook Pro (Sierra) 终端上运行此脚本:
$python v1-get1.py
我正在使用 python 2.7.10 版并尝试在 python 3.6.3 版上运行它,但我收到以下错误:
No SNMP response received before timeout
我尝试用我在网上找到的其他公共服务器替换公共服务器,但我一直收到相同的超时响应。我在这里缺少什么吗?或者熟悉 pysnmp 的人可以解释一些我可能缺少的基础知识吗?
【问题讨论】:
标签: python network-programming snmp pysnmp