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 相关文章推荐
pycharm 使用心得(二)设置字体大小
Jun 05 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
Python面向对象之继承和多态用法分析
Jun 08 Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
python爬虫开发之urllib模块详细使用方法与实例全解
Mar 09 Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 Python
python树莓派通过队列实现进程交互的程序分析
Jul 04 Python
python Tkinter模块使用方法详解
Apr 07 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
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python引用模块和查找模块路径
2016/03/17 Python
python中私有函数调用方法解密
2016/04/29 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
Python实现线程状态监测简单示例
2018/03/28 Python
Django实现跨域的2种方法
2019/07/31 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
餐饮管理自我介绍信
2014/01/15 职场文书
青年志愿者活动方案
2014/08/17 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
先进个人事迹材料
2014/12/29 职场文书
小学毕业教师寄语
2019/06/21 职场文书
用python画城市轮播地图
2021/05/28 Python
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android