java 生成.pcap_从数据库中的值创建PCAP文件

这篇博客讨论了作者在使用Java从数据库中获取数据并创建PCAP文件时遇到的问题。Wireshark无法识别生成的文件,因为它将EtherType字段解析为长度而非协议类型。作者检查了文件头部和数据包结构,但尝试调整字节顺序后问题仍然存在。
摘要由CSDN通过智能技术生成

我有一个数据库充满了大量已记录的IPV4消息 . 它用于获取以下查询:“给我所有来自MacAddress的消息......在这段时间内记录下来... ......有... ......

某些查询将导致大量记录的消息 . 因此,如果提出此类请求,我们决定制作PCAP文件 .

“请创建一个包含数据库中所有已记录消息的PCAP文件......”

因此,根据请求,我的服务应该从数据库中获取所请求的数据(在页面中)并创建一个填充了从数据库中获取的数据的PCAP文件 . 以后的调用者可以向此文件请求只读OWIN流

该服务可以创建这样的文件 . 问题是它不被识别为正确的WireShark文件 .

我读过Libcap File Format . 每当我必须创建一个充满LoggedMessages的文件时,我会按如下方式填充二进制文件 .

全局 Headers

每条记录的消息:

包头

分组数据:

以太网帧:目标Mac,源Mac,EtherType(0x800)

IPV4标头

记录的数据

Wireshark在尝试读取 Ethertype 时开始抱怨该文件 . 它说这是一个长度 . Definition of Ethernet Frame with EtherType

所以下面我展示了我的文件的开头 . 每个字节的十六进制格式我对它的解释 . 之后来自wireshark的评论

创建的流以Global Header开头:32字节结构 . 首先是十六进制值然后是解释:

=== Global Header ====

D4 C3 B2 A1 02 00 04 00

00 00

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值