转换包含随机字符的dpkt字节字符串

时间:2015-08-19 14:19:52

标签: python byte dpkt

我正在使用dpkt python模块来解析pcap文件。我正在深入研究数据包,其中一些数据表示为字节流。我可以很容易地从常规字节字符串转换,但是一些字节字符串显示为:

\吨\ X01 \ X1C \ X88

第一个值应为09,但由于某种原因,它使用的是转义制表符。 (标签的十六进制代码是09)。

它也在为其他流中的其他角色执行此操作。

更多样本输出:

\ X10 \ X00 @ \ X00 \

\ x05q \ X00 \ X00 \

\ x069 \ x9c \ n \ X00

所以我的问题是:我可以将这个字节流转换为没有这些额外字符的字节流吗?

或者,我如何将'\ t'之类的内容转换为十六进制,以便返回'09'?

更新

原来我正在创建要使用将返回的函数转换的字符串 \ t011c88代替第一个流。

单独使用stream.encode(“hex”)工作

1 个答案:

答案 0 :(得分:1)

默认情况下,repr功能会转义您看过的所有不可打印的字符。

要获取仅十六进制表示,请使用

string.encode("hex")

注意:原始字节流是正确的,您应该只转换为十六进制用于查看目的而不是整合目的。它只以奇怪的方式显示数据。