0

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

3 回答 3

1

通过安装 SNMP(在 Linux 操作系统上)并更改其配置文件更正了该问题。

  1. apt-get 更新 && apt-get 安装 snmpd
  2. 在 /var/lib/snmp/snmpd.conf 中添加“udp:161 udp6:161”
于 2013-10-11T06:30:01.007 回答
1

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

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

  2. 您的 communityData 字符串在设备(本地主机)上不是“公开的”。

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

于 2019-11-01T09:59:43.990 回答
1

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

于 2021-05-18T13:01:11.837 回答