python分析pcap文件_Python读取pcap文件
想试一试读取pcap文件的内容,并且分析出pcap文件头,每一包数据的pcap头,每一包的数据内容(暂时不包括数据包的协议解析),关于pcap文件的格式,可以参看:http://blog.sina.com.cn/s/blog_4b5039210100fzrt.html
搞了一下午,写了一个py文件,rdpcap.py,想把里面的二进制文件全部弄成十六进制的,然后作为字符串写入到一个txt文件,转化成字符串是为了显示看起来方便。
程序如下:
#!/usr/bin/env python
#coding=utf-8
#读取pcap文件,解析相应的信息,为了在记事本中显示的方便,把二进制的信息
import struct
fpcap = open('test.pcap','rb')
ftxt = open('result.txt','w')
string_data = fpcap.read()
#pcap文件包头解析pcap_header =
{}
pcap_header['magic_number'] = string_data[0:4]
pcap_header['version_major'] = string_data[4:6]
pcap_header['version_minor'] = string_data[6:8]
pcap_header['thiszone'] = string_data[8:12]
pcap_header['sigfigs'] = string_data[12:16]
pcap_header['snaplen'] = string_data[16:20]
pcap_header['linktype'] = string_data[20:24]
#把pacp文件头信息写入result.txt
ftxt.write("Pcap文件的包头内容如下: \n")
for key in
['magic_number','version_major','version_minor','thiszone',
'sigfigs','snaplen','linktype']:
ftxt.write(key+ " : " + repr(pcap_header[key])+'\n')
#pcap文件的数据包解析
step = 0
packet_num = 0
packet_data = []
pcap_packet_header = {}
i =24
while(i
#数据包头各个字段
pcap_packet_header['GMTtime'] = string_data[i:i+4]
pcap_packet_header['MicroTime'] = string_data[i+4:i+8]
pcap_packet_header['caplen'] = string_data[i+8:i+12]
pcap_packet_header['len'] = string_data[i+12:i+16]
#求出此包的包长len packet_len = struct.unpack('I',pcap_packet_header['len'])[0]
#写入此包数据
packet_data.append(string_data[i+16:i+16+packet_len])
i = i+ packet_len+16
packet_num+=1
#把pacp文件里的数据包信息写入result.txt
for i in range(packet_num):
#先写每一包的包头 ftxt.write("这是第"+str(i)+"包数据的包头和数据:"+'\n')
for key in
['GMTtime','MicroTime','caplen','len']:
ftxt.write(key+' : '+repr(pcap_packet_header[key])+'\n')
#再写数据部分
ftxt.write('此包的数据内容'+repr(packet_data[i])+'\n')
ftxt.write('一共有'+str(packet_num)+"包数据"+'\n')
ftxt.close()
fpcap.close()
最终得到的result文件如下所示:字段显示的都是十六进制,其中的数据部分和wireshark打开,显示的十六进制窗口一样。
(其实如果程序想到得到某一个或某几个字节的十进制数,用struct还是很容易转换的)
python分析pcap文件_Python读取pcap文件相关推荐
- python分析数据包_Python解析pcap数据包
Post Views: 29,789 零.前言 历时数月,终于结束了考研初试,Blog也很长时间没有更新了,期间还是有些小伙伴来Blog看文章很是感动.以后一定会坚持更新,尽量给大家推送一些干货.这次 ...
- python 读取大文件_Python读取大文件
1. 前言 前几天在做日志分析系统,需要处理几十G的文件,我尝试用原来的for line in open(filepath).readlines()处理,但停顿好久也没变化,可见占用不小的内存.在网上 ...
- python保存为mat文件_Python读取mat文件保存为pickle格式的实例代码
Python使用pickle模块储存对象操作 Python读取mat文件,并保存为pickle格式的方法 这两天在搞Theano,要把mat文件转成pickle格式载入Python. Matlab是把 ...
- python读取pdf文件_python读取pdf文件
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 一.安装pdfminer3k模块?二. 读取pdf文件import sysimp ...
- python接口自动化参数化_Python读取txt文件数据的方法(用于接口自动化参数化数据)...
小试牛刀: 1.需要python如何读取文件 2.需要python操作list 3.需要使用split()对字符串进行分割 代码运行截图 : 代码(copy) #encoding=utf-8 #1.r ...
- python生成表格文件_python 读取excel文件生成sql文件实例详解
python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...
- python编程单词排序_Python读取英文文件并记录每个单词出现次数后降序输出示例...
本文实例讲述了Python读取英文文件并记录每个单词出现次数后降序输出.分享给大家供大家参考,具体如下: 对文中出现的句号,逗号和感叹号做了相应的处理 sorted排序函数用法: 按照value值降序 ...
- python 读取文件_python读取docx文件,就是如此简单
扫码加入千人跳槽求职QQ群或微信圈子,每日都有全国招聘信息哦 中文编码问题总是让人头疼(尤其是mac本),想要用Python读取word中的内容.用open()经常报错,通过百度搜索+问身边小 ...
- python处理mat数据_python读取.mat文件的数据及实例代码
首先导入scipy的包 from scipy.io import loadmat 然后读取 m = loadmat("F:/__identity/activity/论文/data/D001. ...
- python修改yaml文件_Python读取yaml文件的详细教程
yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文 ...
最新文章
- 《计算机组成原理》第04章在线测试
- 国家发钱了!研究生补贴一览表!
- Struts2中通过Ajax传递json数据
- 抖音下拉框中的下拉词是怎么出来的?
- oracle12c安装详解,Oracle12C安装教程
- html5回到顶部代码,返回顶部完整代码
- 关于异常结存的问题,库存结存为什么会产生数量为0,成本不为0的异常情况
- 中国甜奶油粉市场趋势报告、技术动态创新及市场预测
- Unhandled exception in al.exe(KERNELBASE.DLL):0xE06D7363:Microsoft C++Exception
- 角频率、圆周频率、归一化频率的区别
- 线程安全的随机数生成
- 助力课堂智能点名 | 爱莫AI场景化应用(四)
- 机器学习之经典算法(十一) 条件随机场
- JVM内存模型JVM内存模型
- 巴贝奇、阿达和他们的差分机
- vue2.0之多页面的开发
- 【建站指南】解决个人网站图片加载缓慢的问题
- 给自己的应用程序添加系统偏好设置
- 1. CUDA安装失败解决方法
- 洛谷P1017题解 [NOIP2000 提高组] 进制转换