超时前未收到SNMP响应

时间:2013-10-10 11:52:38

标签: python snmp pysnmp

我是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()))

3 个答案:

答案 0 :(得分:1)

您的代码没有任何问题,但这可能是您得到该响应的两个可能原因。

  1. 您的“ localhost”中没有配置snmp。尝试连接到配置了snmp的设备ip。

  2. 您的communityData字符串在设备(localhost)上不是“ public”。

检查这两件事,然后看看它如何进行。如果您没有可以使用的设备,那么尝试GNS3是最好的选择。

答案 1 :(得分:1)

OP 未指定操作系统,因此如果您在 Windows 上进行测试,这可能会有所帮助:

  • 确保您已安装 SNMP 服务(请参阅 here
  • 转到 services.msc 并在主机和社区“public”下添加您的“localhost” SNMP service

答案 2 :(得分:0)

通过安装SNMP(在Linux OS上)并更改其配置文件来解决此问题。

  1. apt-get update&& apt-get install snmpd
  2. 在/var/lib/snmp/snmpd.conf中添加“udp:161 udp6:161”