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操作gmail实例
Jan 14 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 Python
Python实现的矩阵类实例
Aug 22 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 Python
Python Django 页面上展示固定的页码数实现代码
Aug 21 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
15个Pythonic的代码示例(值得收藏)
Oct 29 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 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动态生成虚拟现实VRML网页
2006/10/09 PHP
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
python实现下载指定网址所有图片的方法
2015/08/08 Python
强悍的Python读取大文件的解决方案
2019/02/16 Python
机器学习实战之knn算法pandas
2019/06/22 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
台湾旅游网站:灿星旅游
2018/10/11 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
经典的班主任推荐信
2013/10/28 职场文书
参观监狱心得体会
2014/01/02 职场文书
工作会议主持词
2014/03/17 职场文书
公司合作意向书
2014/04/01 职场文书
导师工作推荐信范文
2014/05/17 职场文书
药店促销活动总结
2014/07/10 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
汽车质检员岗位职责
2015/04/08 职场文书