用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第三方库


热门话题
如何使用SeleniumWebDriver捕获特定元素的屏幕截图而不是整个页面?   WAS 8.5中的java JAXWS异步IO异常   java Android Studio无法解析数组适配器中的符号项   swing Java在运行时添加和删除按钮   java Spring Boot 2.0。x禁用特定配置文件的安全性   java这是我的最后一个代码,我在“if(Users[B].substring(0,1)==“1”){//Find String Cut Char Function”上遇到错误   单击菜单选项后打开“活动”时发生java错误   java Tic Tac Toe NullPointerException   java如何做数学题。随机进入for循环   java Http状态404错误处理spring mvc   java循环依赖双向@OneToMany JPA关系   java我可以在不重新启动项目的情况下添加servlet吗   java在蓝色/绿色部署中如何管理共享数据库?   这是一个系统。currentTimeMillis()是Java中时间性能的最佳度量?