2015-05-09 97 views
3

有无论如何使用pyshark获取TCP数据包的有效载荷吗?pyshark - 来自TCP数据包的数据

我想比较跨多个TCP流不同数据包的数据部分,但我无法找到一个方法来获取数据包的数据。 pkt['tcp'].data似乎不存在。

+0

你试过[这](https://github.com/KimiNewt/pyshark#accessing-packet-data)? – ferkulat

+0

你有没有想出解决这个问题的方法。即使我面临同样的问题! –

回答

0

如果您使用的是.pcap文件,一旦您已经阅读使用

cap = pyshark.FileCapture('vox.pcap') 

文件说,你想读第二个数据包的数据,你一定存在这样的字段,尝试:

pkt = cap[1] 
print pkt.tcp.data 

要查看可用的pkt.tcp的选项,使用:

dir(pkt.tcp) 

这将返回所有可用的选择离子对pkt.tcp

+1

当我尝试数据并且dir(cap [x] .tcp)没有“数据”时,我收到了异常! –

0

你可以这样做:

import pyshark 
import sys 

cap = pyshark.FileCapture(sys.argv[-1]) 
for i in cap: 
    try: 
     print(i.data.data) 
    except: 
     print("no data")