我使用scapy来嗅探数据包,但Scapy无法像PyShark(Wireshark)那样返回数据包信息。例如:
>>> cap = pyshark.FileCapture('test.pcap', only_summaries=True)
>>> cap[1].info
'FTP Data: 1460 bytes'
>>> cap[2].info
'Response: 150 Opening BINARY mode data connection for Notes chapter2.pdf(14868284 bytes)'
>>> type(cap[2])
<class 'pyshark.packet.packet_summary.PacketSummary'>
这个功能是我真正想要的,但我只有数据包原始字节数组或Scapy数据帧。它是将字节数组转换为PyShark数据帧的解决方案吗?因为我的计算机在使用PyShark进行嗅探时会遇到奇怪的问题。
如果您将数据包作为字节变量,您可以在Pyshark中读取它:
c = pyshark.InMemCapture()
c.parse_packet(binary_packet)
c.parse_packets(list_of_binary_packets) # More efficient