我需要读取一个PCAP文件,修改一些字段(实际上是IPv4源和目标,以及以太网源和目标). PCAP已预先过滤,仅包括基于以太网的IPv4数据包.

到目前为止,我尝试使用Scapy进行此操作,但是Scapy存在严重的内存问题.读取〜350MB PCAP文件时,我的16GB RAM已满.实际上,只是阅读.我对此文件没有做任何其他事情.我也有found this answer,有了这些更改,阅读速度很快.一旦我开始修改数据包,内存就会再次膨胀. Scapy实际上在这种情况下不可用

我还考虑过使用其他工具,例如tcprewrite,但是它不能满足我的目的.每个数据包的源MAC始终相同,这也可以使用tcprewrite完成.源IP在给定的子网范围内应该是随机的,例如均匀分布在10.0.0.0/16中.不太容易.目的地IP甚至更加复杂,它需要根据给定的流量矩阵进行计算.

因此,问题是:如何读取PCAP文件,使用自定义功能修改四个基本字段(以太网src dst,IP src dst),然后将其写回到(另一个)PCAP文件中?

实际上,我框架的其余部分都是用Python编写的,因此我更喜欢基于python的解决方案.但是,由于我可以简单地调用其他脚本,所以这不是强制性的.谢谢!

解决方法:

我不知道是否有办法用scapy做到这一点,但您也可以使用非常简单的PcapFile.py库,该库允许您逐包读取/写入pcap文件(免责声明:我是其中的一位作者).如果您的需求不是太复杂(例如,您不需要重新生成校验和),则可以使用Python切片和Python的struct模块简单地修改帧的字节串.

但是我认为也有可能使Scapy使用p = Ether(packet_bytes)分析帧,并使用str(p)将其转换回PcapFile.py的字节流.这样,您就可以让scapy重新为您计算有效的校验和.

标签:pcap,python

python考试题库 pcap_使用Python修改PCAP相关推荐

  1. python第三方库有哪些-Python常用第三方库大盘点

    Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域.下面简单介绍下网络爬虫.自动化.数据分析与可视化.WEB开发.机器学习和其他常用的一些第三方库,如果有你感兴趣的库,不妨去试试它的功能 ...

  2. 计算机二级Python选择题真题第一套,计算机二级Python考试题库

    更多最新Python真题套题微信搜索小程序[Python计算机二级] 1.计算机完成一条指令所花费的时间称为一个(  ). A.执行时序 B.存取周期 C.执行速度 D.指令周期 正确答案:D 解析: ...

  3. python考试题目及答案-python考试题库

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 4. 能够阅读和分析 python程序. 5. 熟练使用idle开发环境 ...

  4. python cgi库_《Python 数据库 GUI CGI编程》

    1. 上次写在前面,我们介绍了一篇关于开始使用Python.今天我们将介绍Python数据库,GUI, CGI编程和Python和Python的区别.2.连接到数据库标准Python数据库接口是Pyt ...

  5. python支持向量机库安装,使用python学习【机器学习】需要安装的库~

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ----------------------------------------------------------------------------- ...

  6. 以下属于python标准库的选项是-Python 标准库一览(Python进阶学习)

    转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连 ...

  7. python第三方库安装方法-Python第三方库安装

    Python有一个全球社区:https://pypi.org/,在这里我们可以搜索任何主题的Python第三方库.PyPI全称是Python Package Index,指的是Python包的索引,它 ...

  8. python pdf库_3个Python PDF库,提取信息、转换格式、分割剪裁有它就够了!

    Python无处不在,似乎支持从主要网站到桌面实用程序到企业软件的所有功能.Python已经被用来编写流行的软件项目,如dnf/yum.OpenStack.OpenShot.Blender.Calib ...

  9. c调用python第三方库_用 Python ctypes 来调用 C/C++ 编写的第三方库

    看到一篇简洁的文章--如何用Python ctypes调用C++(ctypes调用C没这么多麻烦事),不敢独享... 如果需要用 Python 调用 C/C++ 编写的第三方库(这些第三方库很可能就是 ...

最新文章

  1. 深入讲解微信小程序上传图片与JAVA后台的结合
  2. IT从业者(程序员等)之强身健体-武术
  3. 斐波那契数列(Fibonacci Sequence)
  4. 分布式锁的多种实现方式
  5. 高级点的php书,深入理解php:高级技巧、面向对象与核心技术(原书第3版) 中文pdf扫描版[76MB]...
  6. mysql使用多个索引_mysql索引合并:一条sql可以使用多个索引
  7. 怎样快速修改论文格式-使用人工智能技术助手
  8. 电子发票撤销 java_已确认的发票如何撤销
  9. 5G网元结构和协议栈
  10. 手机屏幕常见故障_iPhone手机一些比较常见的维修故障分析
  11. 童年学习机器人的 5 大好处
  12. 关于Element-ui中el-table在谷歌和360极速浏览器的兼容问题
  13. 用户登录 验证数据库
  14. 晶联讯LCD(JLX128128G-610-PC)使用教程
  15. undefined local variable or method `daemonize‘ for puma
  16. 计算机音乐如何复制到手机桌面,电脑上的歌怎么传到手机上
  17. 内蒙古中考计算机考试知识点总结,内蒙古包头中考语文备考分析及知识总结.doc...
  18. Cadence PSpice 模型10:ABM库的控制源型模型介绍与使用方法图文演示
  19. 【交互设计】如何设计“取消”按钮
  20. 乐优商城(10)--数据同步

热门文章

  1. pb调用c语言dll,PB调用C#编写的Dll类库
  2. java sort reverse_Java ArrayList sort() 方法
  3. 华为 mysql实例监控,华为云文档数据库服务DDS监控告警全新优化
  4. 每日一皮:这题作的没毛病...
  5. Spring-Security-入门(一):登录与退出
  6. prism项目搭建 wpf_WPF Step By Step 系列-Prism框架在项目中使用
  7. error LNK2001: 无法解析的外部符号 “void __cdecl cv::cvtColor
  8. insightface 切换GPU训练报错解决
  9. insightface mxnet训练 旧版
  10. mxnet.gluon 加载预训练