Python PySNMP获取数据,但以超时结束

Python PySNMP获取数据,但以超时结束,python,pysnmp,Python,Pysnmp,我想从本地路由器获取数据,并使用pySnmp。我是这样做的: g = getCmd(SnmpEngine(), CommunityData('public'), UdpTransportTarget(('192.168.7.1', 161)), ContextData(), ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0))) dat

我想从本地路由器获取数据,并使用pySnmp。我是这样做的:

g = getCmd(SnmpEngine(),
             CommunityData('public'),
             UdpTransportTarget(('192.168.7.1', 161)),
             ContextData(),
             ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)))
data = next(g)
之后,我在屏幕上获得了大量打印数据,但当我查看我的数据变量时,我得到:

(<pysnmp.proto.errind.RequestTimedOut at 0x105b6bfd0>, 0, 0, []) 
(,0,0,[])

但是我在打印的数据中看到了我需要的所有数据,我如何解决这个问题?

您尝试过使用UDP超时吗?像UDPTTransportTarget(('192.168.7.1',161),超时=5,重试次数=0)我想知道你们在屏幕上得到了什么样的数据?对于sysDescr.0,它应该只是一个单一(通常很短)字符串。它可能是调试输出吗?是的,它看起来像一些调试信息。我尝试过超时和重试,但仍然得到相同的结果-RequestTimedOut。看起来SNMP在路由器端被禁用了。当我打开它时,一切都开始工作了!请记住,默认情况下pysnmp不会产生任何调试。您必须显式启用它。您是否尝试过使用UDP超时?像UDPTTransportTarget(('192.168.7.1',161),超时=5,重试次数=0)我想知道你们在屏幕上得到了什么样的数据?对于sysDescr.0,它应该只是一个单一(通常很短)字符串。它可能是调试输出吗?是的,它看起来像一些调试信息。我尝试过超时和重试,但仍然得到相同的结果-RequestTimedOut。看起来SNMP在路由器端被禁用了。当我打开它时,一切都开始工作了!请记住,默认情况下pysnmp不会产生任何调试。您必须显式地启用它。