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检测网页是否有日常链接
Jun 03 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
Python中asyncio模块的深入讲解
Jun 10 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
python粘包问题及socket套接字编程详解
Jun 29 Python
python进阶之自定义可迭代的类
Aug 20 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
python怎么调用自己的函数
Jul 01 Python
Python pip使用超时问题解决方案
Aug 03 Python
python如何操作mysql
Aug 17 Python
python批量更改目录名/文件名的方法
Apr 18 Python
Python编写nmap扫描工具
Jul 21 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 小乘法表实现代码
2009/07/16 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
php连接mysql数据库
2017/03/21 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python变量和字符串详解
2017/04/29 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
基于python中__add__函数的用法
2019/11/25 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
python数字类型math库原理解析
2020/03/02 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
一个大学生十年的职业规划
2014/01/17 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
节约用电通知
2015/04/25 职场文书
第一军规观后感
2015/06/12 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
学术会议开幕词
2016/03/03 职场文书
python 单机五子棋对战游戏
2022/04/28 Python