转换包含随机字符的 dpkt 字节字符串
convert dpkt byte strings containing random characters
我正在使用 dpkt python 模块来解析 pcap 文件。我正在深入研究一些数据被表示为字节流的数据包。我可以很容易地从常规字节字符串转换,但是一些字节字符串显示为:
\t\x01\x1c\x88
第一个值应该是 09,但是由于某种原因它使用了转义制表符。 (制表符的十六进制代码是 09)。
它也在为其他流中的其他角色执行此操作。
更多示例输出:
\x10\x00@\x00\
\x05q\x00\x00\
\x069\x9c\n\x00
所以我的问题是:我可以将这个字节流转换为没有这些额外字符的字节流吗?
或者,我如何将'\t'之类的东西转换为十六进制,以便它 returns '09'?
更新:
事实证明,我正在创建要使用 return 函数转换的字符串
\t011c88 代替第一个流。
别管它,使用 stream.encode("hex") 有效
默认情况下,repr
函数会转义所有不可打印的字符,如您所见。
要获得仅十六进制表示,请使用
string.encode("hex")
注意:原始字节流是正确的,您应该仅出于查看目的而不是完整性目的转换为十六进制。它只是以一种奇怪的方式显示数据。
我正在使用 dpkt python 模块来解析 pcap 文件。我正在深入研究一些数据被表示为字节流的数据包。我可以很容易地从常规字节字符串转换,但是一些字节字符串显示为:
\t\x01\x1c\x88
第一个值应该是 09,但是由于某种原因它使用了转义制表符。 (制表符的十六进制代码是 09)。
它也在为其他流中的其他角色执行此操作。
更多示例输出:
\x10\x00@\x00\
\x05q\x00\x00\
\x069\x9c\n\x00
所以我的问题是:我可以将这个字节流转换为没有这些额外字符的字节流吗?
或者,我如何将'\t'之类的东西转换为十六进制,以便它 returns '09'?
更新:
事实证明,我正在创建要使用 return 函数转换的字符串 \t011c88 代替第一个流。
别管它,使用 stream.encode("hex") 有效
默认情况下,repr
函数会转义所有不可打印的字符,如您所见。
要获得仅十六进制表示,请使用
string.encode("hex")
注意:原始字节流是正确的,您应该仅出于查看目的而不是完整性目的转换为十六进制。它只是以一种奇怪的方式显示数据。