0

我有一个自定义脚本在端口 161 上侦听 UDP 数据包。它侦听良好,接收字符串良好 - 当我从测试脚本(在另一个盒子上)发送消息时,它在日志中显示良好,等等

我正在按如下方式收集 UDP 数据:

data, addr = sock.recvfrom(1024)

data 包含带有我需要的信息的字符串。

在数据进来的接口上执行tcpdump时,看起来很正常,例如:

.1.3.6.1.4.1.3375.2.1.1.2.12.6 .1.3.6.1.4.1.3375.2.1.1.2.12.6 public "THIS IS THE TRAP" .1.3.6.1.4.1.3375.2.1.1.2.12.6 .1.3.6.1.4.1.3375.2.1.1.2.12.6

当我获取传入的数据(在 python 中)并打印它或将其输出到文件时,我会得到一堆 ESC 序列,或者只是在日志文件中无法打印的数据。

报价中的所有内容都被保留。

我已经能够去除 ESC 序列并将“好东西”存储在引号内,但是我丢失了我的 OID。就好像 python 认为那些 ascii 字符是别的东西。

我确实注意到,在尝试保存乱码数据时,如果我将编码更改为 Latin-1 - 它变得有点可读......但那里仍然有一些乱码。

我试图在家里复制这个问题 - 但无论我通过 test.py 向端口 161 上的侦听器提供什么文本,它都很好并且可读。这是在我工作的测试环境中实现的。PS我不是程序员,而是网络人。

如果重要,发送 SNMP 陷阱的设备是 F5 LTM。我知道这是一个非常笼统的问题,所以我感谢任何人花时间完整阅读我的问题并花几分钟时间思考它。

4

0 回答 0