如何获取 packet.tcp.payload 和 packet.http.data 作为字符串?

How to get packet.tcp.payload and packet.http.data as string?

这些属性的 return 值采用十六进制格式,由“:”分隔 例如:70:79:f6:2e:像这样。 当我试图将它解码为纯字符串(人类可读)时,它不起作用。使用什么编码?我尝试了各种不同的方法,如 codecs.decode()、binascii.unhexlify()、bytes.fromhex() 以及不同的编码 ASCII 和 UTF-8。没有任何效果,任何帮助表示赞赏。我正在使用 python 3.6

感谢您的提问!我相信您想要读取两个十六进制位置的块中的有效负载。您尝试的函数无法立即解析 : 定界符。像用 : 分隔符分割字符串,将它们的值转换为人类可读的字符,并将“列表”连接到字符串这样的东西应该可以解决问题。

hex_string = '70:79:f6:2e'

hex_split = hex_string.split(':')
hex_as_chars = map(lambda hex: chr(int(hex, 16)), hex_split)

human_readable = ''.join(hex_as_chars)
print(human_readable)

这是你想要的吗?