用python捕获和解析http流量

httpcap的Python项目详细描述


License

许可证

httpcap(以前的名称pcap解析器)

捕获、分析和显示http流量。Python2.7.*或Python3.3+ 必修的。

此模块解析pcap/pcapng文件,或从 设备(使用libpcap),然后检索http数据,并显示为文本。 PCAP文件可以通过tcpdump、wireshark或其他类似方式获得 工具。

功能:

  • 按TCP连接分组的HTTP请求/响应;中的请求 一个保持活动的http连接将一起显示。
  • 托管分块和压缩的http请求/响应。
  • 托管字符编码
  • 以漂亮的方式格式化json内容。

安装

此模块可以通过PIP安装:

pip install httpcap

那么您应该安装parse pcap和parse live*工具 分析PCAP文件时,使用Parse PCAP*捕获和分析流量 在网络设备中,使用parse live

使用量

基本用法:

# Use tcpdump to capture packets:
tcpdump -wtest.pcap tcp port 80# only output the requested URL and response status
parse-pcap test.pcap
# or use pipe
sudo tcpdump -w- tcp port 80| parse-pcap
# parse-live need to be root. capture network device en1
# on linux/osx ifconfig to see all network devices
sudo parse-live en1
# capture traffics on all devices
sudo parse-live

下面以parse-pcap为例。解析live与 解析pcap,只需将文件名更改为设备名。

输出电平

parse pcap/parse live默认情况下只显示url。使用-v显示更多: 然后:

# output http req/resp headers
parse-pcap -v test.pcap
# output http req/resp headers and body which belong to text type
parse-pcap -vv test.pcap
# output http req/resp headers and body
parse-pcap -vvv test.pcap
# display and attempt to do url decoding and formatting json output
parse-pcap -vvb test.pcap

使用-g将http请求/响应分组:

parse-pcap -g test.pcap

结果如下:

********** [10.66.133.90:56240] -- -- --> [220.181.90.13:80] **********
GET http://s1.rr.itc.cn/w/u/0/20120611181946_24.jpg
HTTP/1.1 200 OK
GET http://s1.rr.itc.cn/p/images/imgloading.jpg
HTTP/1.1 200 OK
GET http://s1.rr.itc.cn/w/u/0/20130201103132_66.png
HTTP/1.1 200 OK
GET http://s1.rr.itc.cn/w/u/0/20120719174136_77.png
HTTP/1.1 200 OK
GET http://s1.rr.itc.cn/p/images/pic_prev_open.png
HTTP/1.1 200 OK

********** [10.66.133.90:47526] -- -- --> [220.181.90.13:80] **********
GET http://s1.rr.itc.cn/w/u/0/20130227132442_43.png
HTTP/1.1 200 OK
GET http://s1.rr.itc.cn/p/images/pic_next.png
HTTP/1.1 200 OK
GET http://s1.rr.itc.cn/p/images/pic_prev.png
HTTP/1.1 200 OK
GET http://s1.rr.itc.cn/p/images/pic_next_open.png
HTTP/1.1 200 OK

过滤器

您可以使用-i/-p选项指定源和 目标和parse-pcap将只显示满足以下条件的http数据 指定条件:

parse-pcap -p55419 -vv test.pcap
parse-pcap -i192.168.109.91 -vv test.pcap

使用-d指定http域;仅显示http req/resp和 指定域:

parse-pcap -dwww.baidu.com -vv test.pcap

使用-u指定http uri模式;仅在 哪个url包含指定的url模式:

parse-pcap -u/api/update -vv test.pcap

编码

使用-e强制http主体使用的编码:

parse-pcap -i192.168.109.91 -p80 -vv -eutf-8 test.pcap

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java测试访问令牌过滤器   close()上的java Apache POI运行时异常   java为什么Eclipse中的GWT总是显示错误404?   java从socket python服务器接收消息   java mediaRecorder:start()函数失败   不关闭DB连接可能是Tomcat上Java堆溢出的原因吗?   java JFrame无法关闭   java BigQuery加载本地文件不起作用,位置有问题   java可以在递归任务中使用吗?   servlets如何从JSESSIONID加载Java HttpSession?   java将JFileChooser与PDFBox一起使用时,文件不会另存为pdf,但保存时不带扩展名   java将处理结果存储在表中   java算法发现循环世界中重叠间隔的持续时间(24小时)   在windows 10上双击Eclipse安装程序可执行文件(eclipseinstjrewin64.exe)后,java不会发生任何事情   java编译和部署自定义Solr请求处理程序   Java/Android崩溃ApacheCommonsio2。4.jar   spring web应用程序中的java集成收件箱功能   java Grizzly、Jersey和Spring自动布线问题   java如何在pom中添加jar文件依赖项。xml   关于Android中大量GUI更新编码的java概念(GUI处理程序)