我是网络编程新手,特别是 snmp。我只想在本地发送一个简单的 snmp 请求并查看它给出的内容。到目前为止,文档并没有真正说明 send 方法。这就是我遵循的example和this。我首先使用它们,但后来自定义它们,如下所示:
from pysnmp.hlapi import *
g = getCmd(SnmpEngine(),
CommunityData('public'),
UdpTransportTarget(('demo.snmplabs.com', 161)),
ContextData(),
ObjectType(ObjectIdentity('TCP-MIB', 'tcpConnectionState',
'ipv4', '127.0.0.1', 41511,
'ipv4', '127.0.0.1', 993)
)
)
g.send([ObjectType(ObjectIdentity('IF-MIB', 'ifInOctets'))])
但是我收到此错误:
TypeError:无法将非 None 值发送到刚刚启动的生成器
您想要做的是将值发送到 Python 生成器,而不是发送到您的对等 SNMP 代理。只需使用
next()
代替(或将该生成器放入循环中),这样它就会在第一次迭代时将 SNMP 数据包推送到网络。这是示例。