我是Pysnmp的重要人物。我刚安装它并开始学习。 当我使用同步命令生成器的示例时,我收到“在超时之前没有收到SNMP响应”的错误。任何人请帮助!! 我的代码是
from pysnmp.entity.rfc3413.oneliner import cmdgen
cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
cmdgen.CommunityData('public'),
cmdgen.UdpTransportTarget(('localhost', 161)),
'1.3.6.1.2.1.1.1.0',
'1.3.6.1.2.1.1.6.0'
)
# Check for errors and print out results
if errorIndication:
print(errorIndication)
else:
if errorStatus:
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?'
)
)
else:
for name, val in varBinds:
print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))
答案 0 :(得分:1)
您的代码没有任何问题,但这可能是您得到该响应的两个可能原因。
您的“ localhost”中没有配置snmp。尝试连接到配置了snmp的设备ip。
您的communityData字符串在设备(localhost)上不是“ public”。
检查这两件事,然后看看它如何进行。如果您没有可以使用的设备,那么尝试GNS3是最好的选择。
答案 1 :(得分:1)
OP 未指定操作系统,因此如果您在 Windows 上进行测试,这可能会有所帮助:
答案 2 :(得分:0)
通过安装SNMP(在Linux OS上)并更改其配置文件来解决此问题。