当我使用Scapy的分析一些UDP数据包,并生成一个列表,当我读到一个列表值,它显示乱码
问题描述:
from scapy.all import *
import re
def get_seq(data):
list1 = []
try:
recive = rdpcap(r"/home/luokai/sipp/pcap/" + data)
for r in recive:
a = r[Raw].load
list1.append(a)
p = list1[0]
print p
except:
print "Error"
结果:当我使用Scapy的分析一些UDP数据包,并生成一个列表,当我读到一个列表值,它显示乱码
~~~~~ ~~~}} ~~~~~~~~~~ ~~~~~~~~~}}}}〜 〜} ~~~~~~~~~~~~~~~~ 〜 } 〜 ~~~~
答
将二进制数据显示为字符串。例如,您应该用print repr(p)
替换print p
,以获得更具可读性的内容。
答
您打印原始二进制数据,你可以通过做其转换为STR:
s=str(packet)
print s
但是这可能不是你想要的东西,所以你应该做的:
packet.show()
OK取代再版后,它显示正确,但三个有一些错误,当我读取数据时,它错过了一些字符串 – kai
然后这回答你的问题。你应该接受这个答案,并提出另一个问题:stackoverflow适用于基本(原子)问题,所以一个答案可能会帮助其他人有类似的问题。 – Pierre