javascript - 在 JS 中读取 pcap.gz 文件

标签 javascript node.js npm gzip pcap

我有一个大约 500gb 的 pcap.gz 文件,我想使用 node.js 读取它。我尝试使用 wireshark 将此文件导出为 JSON,但是它花了大约一个小时并生成了一个 47 GB 的文件(大到不实用)。我最终找到了一个可以找到的 Node 模块 here那应该能够读取 pcap 文件。然后我使用 7zip 提取 pcap 文件(生成一个超过 2 GB 的文件)并尝试运行此代码:

var pcapp = require('pcap-parser');

var parser = pcapp.parse('C:/Users/.../data.pcap');
parser.on('packet', function(packet) {
    console.log(packet);
});

得到如下错误码

events.js:182

throw er; // Unhandled 'error' event
  ^

Error: unknown magic number: 0a0d0d0a

对我来说最理想的是可以解析 pcap.gz 文件的 node.js 脚本,这样我就不必通过任何中间应用程序,如 wireshark 或 7zip。

这是文件的下载链接:download

非常感谢任何帮助。

最佳答案

我在自己使用 Wireshark 制作的一些 pcap 文件上测试了 NPM pcap 解析器,它在 .pcap 和 .pcap.gz 上都能正常工作。然而,有问题的 pcap 文件显然不是 pcap 文件,而是 pcap-ng 文件,如本 question 中所示。 .然后解决方案是在 wireshark 中加载我的 pcap-ng 文件,并使用 tcpdump 库保存它。完成此操作后,NPM pcap 解析器就可以很好地解析文件。我意识到这不是一个完美的解决方案,因为我仍然需要通过 wireshark,但这是一个开始。

关于javascript - 在 JS 中读取 pcap.gz 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45494453/

相关文章:

javascript - 寻求 Javascript 中的模拟框架

javascript - 如何在 TypeScript 中为 Node 使用无类型的 JS NPM 模块?

javascript - 如何获取选中选项的数据

javascript - 为什么 html 标签不起作用并显示为字符串值?

node.js - Nodejs 使用 Sequelize。 "[].belongsTo called with something that' 不是 Sequelize.Model at Function 的子类。”

javascript - 在 View 中访问模型实例方法 (Sails.js/EJS)

node.js - NPM 找不到 type@module 的匹配版本

windows - 从 webstorm 命令行工具调用 npm

javascript - 在 Angular JS 中从另一个 Controller 触发一个 Controller 中的服务调用

javascript - 如何通过mocha和chai匹配网页上呈现的特定字符串