Python 如何解码IEX深度pcap文件
我试图解码IEX(投资者交易所)的深度数据,它是pcap格式的。我目前在Python中工作 我目前正在使用Scapy解析pcap文件。问题是我不知道如何将原始加载(二进制形式)解码为人类可读的文本。 这里有一个例子Python 如何解码IEX深度pcap文件,python,scapy,pcap,Python,Scapy,Pcap,我试图解码IEX(投资者交易所)的深度数据,它是pcap格式的。我目前在Python中工作 我目前正在使用Scapy解析pcap文件。问题是我不知道如何将原始加载(二进制形式)解码为人类可读的文本。 这里有一个例子 从scapy.all导入* packets=rdpcap(r'20171104_IEXTP1_DEEP1.0.pcap') 数据包[0]。显示() 结果是这样的 ###[ Ethernet ]### dst = 01:00:5e:57:15:04 src
从scapy.all导入*
packets=rdpcap(r'20171104_IEXTP1_DEEP1.0.pcap')
数据包[0]。显示()
结果是这样的
###[ Ethernet ]###
dst = 01:00:5e:57:15:04
src = 00:1e:67:f2:62:24
type = 0x800
###[ IP ]###
version = 4
ihl = 5
tos = 0x0
len = 68
id = 16005
flags = DF
frag = 0
ttl = 64
proto = udp
chksum = 0x49e2
src = 23.226.155.132
dst = 233.215.21.4
\options \
###[ UDP ]###
sport = 10378
dport = 10378
len = 48
chksum = 0x6c15
###[ Raw ]###
load = '\x01\x00\x04\x80\x01\x00\x00\x00\x00\x00BD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xce/\xec:\x98\xde\xf3\x14'
有什么方法可以让我知道原始装载的内容吗?它应该是关于订单簿数据的信息。我没有看到任何现有的工具来解码这一点
如果感兴趣,您可以从IEX()的官方网站访问这些文件。这些pcap文件通常相当大,因此我正在尝试一个小文件20171104_IEXTP1_DEEP1.0.pcap。如果您要查找更可读的负载转储,请尝试使用Scapy
hextdump
方法:
from scapy.all import *
from scapy.utils import hexdump
packets = rdpcap(r'20180127_IEXTP1_DEEP1.0.pcap')
packets[0].show()
raw = packets[0].lastlayer()
hexdump(raw)
它将输出如下内容:
###[ Ethernet ]###
dst = 01:00:5e:57:15:04
src = 00:1e:67:f2:62:24
type = 0x800
###[ IP ]###
version = 4
ihl = 5
tos = 0x0
len = 68
id = 53693
flags = DF
frag = 0
ttl = 64
proto = udp
chksum = 0xb6a9
src = 23.226.155.132
dst = 233.215.21.4
\options \
###[ UDP ]###
sport = 10378
dport = 10378
len = 48
chksum = 0x955b
###[ Raw ]###
load = '\x01\x00\x04\x80\x01\x00\x00\x00\x00\x00\x96D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x91\x08\xf0M:\xac\r\x15'
0000 01000480010000000000964400000000 ...........D....
0010 00000000000000000100000000000000 ................
0020 9108F04D3AAC0D15 ...M:...
如果要查找更可读的负载转储,请尝试使用Scapy
hextump
方法:
from scapy.all import *
from scapy.utils import hexdump
packets = rdpcap(r'20180127_IEXTP1_DEEP1.0.pcap')
packets[0].show()
raw = packets[0].lastlayer()
hexdump(raw)
它将输出如下内容:
###[ Ethernet ]###
dst = 01:00:5e:57:15:04
src = 00:1e:67:f2:62:24
type = 0x800
###[ IP ]###
version = 4
ihl = 5
tos = 0x0
len = 68
id = 53693
flags = DF
frag = 0
ttl = 64
proto = udp
chksum = 0xb6a9
src = 23.226.155.132
dst = 233.215.21.4
\options \
###[ UDP ]###
sport = 10378
dport = 10378
len = 48
chksum = 0x955b
###[ Raw ]###
load = '\x01\x00\x04\x80\x01\x00\x00\x00\x00\x00\x96D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x91\x08\xf0M:\xac\r\x15'
0000 01000480010000000000964400000000 ...........D....
0010 00000000000000000100000000000000 ................
0020 9108F04D3AAC0D15 ...M:...
你能分享样本PCAP文件吗?@Alderven当然。我不知道如何附加文件,所以我编辑帖子添加网站下载这些文件。希望有帮助。你读过吗?@Alderven是的,但我没有处理解码问题的经验。即使有了规范,我也不知道如何开始。您可能需要在Scapy中实现该协议,以便可以访问每个字段。您可以共享示例PCAP文件吗?@Alderven Sure。我不知道如何附加文件,所以我编辑帖子添加网站下载这些文件。希望有帮助。你读过吗?@Alderven是的,但我没有处理解码问题的经验。即使有了规范,我也不知道如何开始。您可能需要在Scapy中实现该协议,以便可以访问每个字段