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

Python 当我使用Scapy分析一些UDP数据包并生成一个列表时,当我读取一个列表值时,它显示为乱码,python,udp,wireshark,scapy,Python,Udp,Wireshark,Scapy,结果: �~~��~~�~������~~~}~~~~�������~~~~��~��~}~~�~�~~�~�~~~}}}}~����������������~�}~~~�������~�~~�~~~�~���~���~~~�~��~�~��������}�~��~~~~���� 将二进制数据显示为字符串。例如,您应该将print p替换为print repr(p),以便更可读。您正在打印原始二进制数据,您可以通过执行以下操作将其转换为str: from scapy.all import *

结果:

�~~��~~�~������~~~}~~~~�������~~~~��~��~}~~�~�~~�~�~~~}}}}~����������������~�}~~~�������~�~~�~~~�~���~���~~~�~��~�~��������}�~��~~~~����


将二进制数据显示为字符串。例如,您应该将
print p
替换为
print repr(p)
,以便更可读。

您正在打印原始二进制数据,您可以通过执行以下操作将其转换为str:

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"
但这可能不是你想要的,所以你应该:

s=str(packet)
print s

好的,在替换repr后,它显示正确,但当我读取数据时,三个有一些错误,它遗漏了一些字符串,然后这回答了您的问题。您应该接受这个答案并问另一个问题:stackoverflow适用于基本(原子)问题,因此一个答案可能会帮助其他有类似问题的人。
packet.show()