094d2cc112
问题原因: - pysnmp.hlapi.asyncio 的 getCmd/bulkCmd/nextCmd 都是 async def 协程函数 - 返回的是 coroutine 对象,需要用 await 获取结果 - 原代码用 next() 或 for...in 同步迭代协程对象,报错: 'coroutine' object is not an iterator 解决方案: 1. snmp_service.py: 所有 SNMP 操作改为 async def - test_connection(): getCmd 改为 await getCmd() - get_arp_table(): bulkCmd 改为 await bulkCmd() - get_mac_address_table(): bulkCmd 改为 await bulkCmd() - get_interfaces(): bulkCmd 改为 await bulkCmd() - poll_device(): 所有子调用加 await 2. api/v1/snmp.py: API 路由改为 async def + await bulkCmd await 后返回 (errorIndication, errorStatus, errorIndex, varBindTable) 其中 varBindTable 是列表的列表(table 形式),需双层循环解析