当前位置: 首页 > news >正文

忽略时间戳,快速对比tcpreplay和tcpdump数据包pcap数据包一致性

tcpdump

使用 `tcpdump` 提取数据包内容
tcpdump -r capture.pcap -n -e -tttt -l | sed 's/^\([0-9:.]*\) IP [^ ]* > [^ ]*: / /'
解释:
- `-r capture.pcap` 读取捕获文件。
- `-n` 仅显示 IP 地址和端口,不进行 DNS 解析。
- `-e` 显示以太网头部。
- `-tttt` 显示时间戳。
- `-l` 使输出行缓冲(可以实时查看输出)。
- `sed` 用来移除时间戳部分。

tshark


tshark -r capture.pcap -T fields -e ip.src -e ip.dst -e udp.srcport -e udp.dstport -e data > packet_data.txt
解释:
- `-r capture.pcap` 读取捕获文件。
- `-T fields` 输出特定字段。
- `-e` 指定需要的字段(如源 IP、目的 IP、源端口、目的端口和数据)。
- `> packet_data.txt` 将结果写入文件。

diff比较数据包内容

假设你已经有两个文件 `data1.txt` 和 `data2.txt`,分别是 `tcpreplay` 和 `tcpdump` 数据包的提取内容,使用 `diff` 比较:
diff data1.txt data2.txt
 

使用工具进行比较.比如 `Wireshark` 的 `MergeCap` 工具

也可以使用一些专门的网络数据包比较工具,比如 `Wireshark` 的 `MergeCap` 工具,

Python脚本

import redef extract_data_from_line(line):# 正则表达式提取数据包内容match = re.match(r"IP (\S+) > (\S+): (\S+), length (\d+)", line)if match:return f"{match.group(1)} {match.group(2)} {match.group(3)} {match.group(4)}"return Nonedef extract_data_from_file(filename):with open(filename, 'r') as file:data = [extract_data_from_line(line) for line in file if extract_data_from_line(line)]return datadef compare_files(file1, file2):data1 = extract_data_from_file(file1)data2 = extract_data_from_file(file2)set1 = set(data1)set2 = set(data2)only_in_file1 = set1 - set2only_in_file2 = set2 - set1if only_in_file1:print("Only in file 1:")for item in only_in_file1:print(item)if only_in_file2:print("Only in file 2:")for item in only_in_file2:print(item)if __name__ == "__main__":compare_files('data1.txt', 'data2.txt')

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 开发军用LabVIEW程序注意事项
  • centos虚拟机IP地址频繁变化的原因及解决策略
  • eNSP 华为远程访问路由器
  • c语言学习,malloc()函数分析
  • 数据库:数据查询
  • Android大脑--systemserver进程
  • 杂项:WPF编程指南 第一章
  • Linux - 基础工具使用
  • 18. 基于ES实战海量数据检索
  • Java实习记录 8 ——使用 XSSFWorkbook 实现复杂表格下载(背景色、对齐方式、单元格合并等操作)
  • 《机器学习by周志华》学习笔记-决策树-03连续值与缺失值
  • CoCoOp(论文解读):Conditional Prompt Learning for Vision-Language Models
  • 蓝盆花:神秘而迷人的自然之美
  • speech语音audio音频
  • Maven坐标
  • Brief introduction of how to 'Call, Apply and Bind'
  • C++类的相互关联
  • CSS相对定位
  • HTTP--网络协议分层,http历史(二)
  • java 多线程基础, 我觉得还是有必要看看的
  • MySQL数据库运维之数据恢复
  • python 装饰器(一)
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • vue的全局变量和全局拦截请求器
  • 分布式事物理论与实践
  • 分享几个不错的工具
  • 浮现式设计
  • 将回调地狱按在地上摩擦的Promise
  • 前端工程化(Gulp、Webpack)-webpack
  • 一份游戏开发学习路线
  • 运行时添加log4j2的appender
  • 《码出高效》学习笔记与书中错误记录
  • 【云吞铺子】性能抖动剖析(二)
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​ArcGIS Pro 如何批量删除字段
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #nginx配置案例
  • #QT(一种朴素的计算器实现方法)
  • #stm32驱动外设模块总结w5500模块
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (10)ATF MMU转换表
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (3)(3.5) 遥测无线电区域条例
  • (4.10~4.16)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (八)c52学习之旅-中断实验
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (一)、python程序--模拟电脑鼠走迷宫
  • (转载)Google Chrome调试JS
  • (自用)gtest单元测试
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .htaccess 强制https 单独排除某个目录