解析python中的http会话

问题描述:

我有一个pcap与许多tcp/http会话。 我希望能够将每个会话作为一个对象来处理。 理想情况下,我可以看到会话中的所有请求(get,post ...)以及对这些请求的所有响应。 每个请求和响应将有它的标头,字典等解析python中的http会话

,所以我想不便做这个: 进口不便

pcap_obj = smth.readpcap('pcap_file.txt') 

for session in pcap_obj: 
    for req in session.requests(): 
     print req.headers['Content-Type'] 
     ... 
     print req.body 
    for req in session.responses(): 
     print res.status_code 
     print res.body 
     ... 

我知道Scapy的,并设法读取PCAP,并获得会议列表。 但这些都是原始的tcps,我需要重建和解析HTTP。 我已经看到,BaseHTTPServer可能有这样的东西,但它似乎主要是解析请求,并没有处理多个请求的会话。

任何想法?

+0

寻找[python parse http pcap]首先命中(https://www.google.com/search?q=python+parse+http+pcap)给了我[pcap-parser 0.5.10](https: //pypi.python.org/pypi/pcap-parser)which *该模块解析pcap/pcapng文件,检索HTTP数据,并显示为文本。*。 –

+0

感谢您的评论,安装了模块,但几乎没有帮助,而且似乎并不支持。 做了一个测试后,我得到了一个基本的pcap上的多个例外,所以这并不能真正满足需求。 – t0m9er

+0

stackoverflow.com不是一个代码编写服务。我建议你仔细看看模块如何使用pcap来提取http,并根据你的需要调整模块或者根据你所学的内容编写你自己的模块。如果你在做这件事的时候遇到了更具体的问题,就问一个新的具体问题。但是在目前的状态下,这个问题太广泛了,并且没有足够的尝试来自己解决问题。 –

我想我找到了解决办法:

https://github.com/vikwin/pcapfex

这个项目可以解析PCAP TCP会话, 并为每个会话提取物在本次会议发来的文件。

需要对dispatcher.py进行一些修改以适应需求,但这是使用多个软件包进行测试后可以找到的最佳选择。