当我使用Scapy的分析一些UDP数据包,并生成一个列表,当我读到一个列表值,它显示乱码

当我使用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,以获得更具可读性的内容。

+0

OK取代再版后,它显示正确,但三个有一些错误,当我读取数据时,它错过了一些字符串 – kai

+0

然后这回答你的问题。你应该接受这个答案,并提出另一个问题:stackoverflow适用于基本(原子)问题,所以一个答案可能会帮助其他人有类似的问题。 – Pierre

您打印原始二进制数据,你可以通过做其转换为STR:

s=str(packet) 
print s 

但是这可能不是你想要的东西,所以你应该做的:

packet.show()