python 抓包保存为pcap文件并解析的实例


Posted in Python onJuly 23, 2019

首先是抓包,使用scapy模块,

sniff()函数 在其中参数为本地文件路径时,操作为打开本地文件

若参数为BPF过滤规则和回调函数,则进行Sniff,回调函数用于对Sniff到的数据包进行处理

import os
from scapy.all import *
 
pkts=[]
count=0
pcapnum=0
filename=''
 
def test_dump_file(dump_file):
  print "Testing the dump file..."
  
  if os.path.exists(dump_file):
    print "dump fie %s found." %dump_file
    pkts=sniff(offline=dump_file)
    count = 0
    while (count<=2):                   
      print "----Dumping pkt:%s----" %dump_file
      print hexdump(pkts[count])
      count +=1
  else:
    print "dump fie %s not found." %dump_file
 
def write_cap(x):
  global pkts
  global count
  global pcapnum
  global filename
  pkts.append(x)
  count +=1
  if count ==3:             <span style="font-family: Arial, Helvetica, sans-serif;">#每3个TCP操作封为一个包(为了检测正确性,使用时尽量增多)</span>
 
  
  pcapnum +=1
  pname="pcap%d.pcap"%pcapnum
  wrpcap(pname,pkts)
  filename ="./pcap%d.pcap"%pcapnum
  test_dump_file(filename)
  pkts=[]
  count=0
    
 
 
 
if __name__=='__main__':
  print "Start packet capturing and dumping ..."
  sniff(filter="dst net 127.0.0.1 and tcp",prn=write_cap)   #BPF过滤规则

下面是对pcap文件的解析,会自动查找下一个pcap文件,按照src.ip和dst.ip进行划分

# -*- coding: cp936 -*-
import re
import zlib
import os
 
from scapy.all import *
num=1
a=rdpcap("pcap1.pcap")               #循环打开文件
while True:
  try:
    num+=1
    file_name="pcap%d.pcap" % num
    b=rdpcap(file_name)
    a=a+b
  except:
    break
    print "[*] Read pcap file ok"
  
 
 
print "[*] Begin to parse pcapfile..."
print a
try:
  #print "[*] OPen new pcap_file %s" % pcap_file
  sessions=a.sessions()
  for session in sessions:
    print "[*]New session %s" % session
    data_payload=""
    for packet in sessions[session]:
      try:
        data_payload +=str(packet[TCP].payload)
        print "[**] Data:%s" % data_payload
      except:
        pass
except:
  print "[*]no pcapfile..."

以上这篇python 抓包保存为pcap文件并解析的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python装饰器验证配置文件示例
Feb 24 Python
python实现图片批量剪切示例
Mar 25 Python
python计算对角线有理函数插值的方法
May 07 Python
Python使用shelve模块实现简单数据存储的方法
May 20 Python
Python表示矩阵的方法分析
May 26 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
Django forms表单 select下拉框的传值实例
Jul 19 Python
解决python执行较大excel文件openpyxl慢问题
May 15 Python
keras小技巧——获取某一个网络层的输出方式
May 23 Python
python cookie反爬处理的实现
Nov 01 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
Mar 04 Python
python如何读取.mtx文件
Apr 22 Python
Django ModelForm组件使用方法详解
Jul 23 #Python
Pandas之groupby( )用法笔记小结
Jul 23 #Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 #Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 #Python
Django 静态文件配置过程详解
Jul 23 #Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
Jul 23 #Python
pandas通过字典生成dataframe的方法步骤
Jul 23 #Python
You might like
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
2015/05/03 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
js实现图片轮播效果
2015/12/19 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
vue element-ul实现展开和收起功能的实例代码
2020/11/25 Vue.js
跟老齐学Python之编写类之三子类
2014/10/11 Python
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
Python 备份程序代码实现
2017/03/06 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
高中生活自我鉴定
2014/01/18 职场文书
六年级学生评语
2014/04/22 职场文书
督导岗位职责范本
2015/04/10 职场文书
党课主持词大全
2015/06/30 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
详解flex:1什么意思
2022/07/23 HTML / CSS