之前的nDPI项目里为了分析HTTP协议浪费了很长时间,自己编写函数解析gzip、chunked等传输格式,着实浪费了很长时间,而且解析的效果并不好。前几天看到了一个Python的开源软件httpcap,效果很好,在这里记录一下。
首先安装十分简单,使用命令pip install httpcap
即可安装成功。
和NDPI很类似,他也可以直接从网卡抓取数据包或者直接处理已经得到的.pcap网络数据包。
# 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
可以输入不同参数选择要显示的信息。
# 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
测试效果不错,比之前自己写的HTTP解析文件效果好多了,仔细看了一下源代码,感觉思路很清晰,也比较容易理解。时间比较紧,先写到这里,之后再把使用过程中学到的东西补上。