通过 Pysnmp 从特定端口发送 SNMP 消息

Sending SNMP messages from certain port by Pysnmp

我正在使用 python pysnmp 从网络中的设备获取信号信息。

for (errorIndication, errorStatus, errorIndex, varBinds) in nextCmd(
        SnmpEngine(),
        UsmUserData(userName=config.transmitter_username, authKey=config.transmitter_authkey),
        UdpTransportTarget((X.X.X.X, 161), timeout=1.0, retries=0),
        ContextData(),
        ObjectType(ObjectIdentity(SNMP_INITIAL_INFO_OIDS[0][1])),
        lexicographicMode=False
):
    if errorIndication or errorStatus:

请求没有问题,但我定期(每 5 秒一次)执行此操作,每次发送请求时,目标端口为 161,但源端口不同,这是预期的,因为它会找到任何内容当时可用的端口。我也想修复该端口,但不知道如何使用 pysnmp.hlapi 进行修复。我需要的是绑定用于通过 pysnmp 发送 SNMP 的端口。我在谷歌上搜索了一下,但找不到太多所以我来了。

尝试在 hlapi.UdpTransportTarget 对象上调用 .setLocalAddress。那应该使您的套接字端绑定到这个特定地址。

也许永久分配该端点是有意义的,这样您就不会碰到其他进程占用的繁忙端口。