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 控制语句
Nov 03 Python
Python时间戳与时间字符串互相转换实例代码
Nov 28 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 Python
Python操作MySQL数据库的方法
Jun 20 Python
Python中list查询及所需时间计算操作示例
Jun 21 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
sklearn+python:线性回归案例
Feb 24 Python
Python中求对数方法总结
Mar 10 Python
python自动计算图像数据集的RGB均值
Jun 18 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
微信利用PHP创建自定义菜单的方法
2016/08/01 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
python删除文本中行数标签的方法
2018/05/31 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
2019年.net常见面试问题
2012/02/12 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
个人贷款担保书
2014/04/01 职场文书
伊索寓言教学反思
2014/05/01 职场文书
创业计划书介绍
2019/04/24 职场文书
MySQL 逻辑备份 into outfile
2022/05/15 MySQL
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android