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处理cookie详解
Feb 07 Python
将Python中的数据存储到系统本地的简单方法
Apr 11 Python
Python中用函数作为返回值和实现闭包的教程
Apr 27 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
May 25 Python
python学习基础之循环import及import过程
Apr 22 Python
python3实现mysql导出excel的方法
Jul 31 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
Apr 01 Python
Python按照list dict key进行排序过程解析
Apr 04 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 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
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
php数据访问之查询关键字
2016/05/09 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
基于JQuery的多标签实现代码
2012/09/19 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
python调用Delphi写的Dll代码示例
2017/12/05 Python
Python的高阶函数用法实例分析
2019/04/11 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python列表返回重复数据的下标
2020/02/10 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
临床医师专业个人自我评价范文
2013/11/07 职场文书
大学生创业策划书
2014/02/02 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技