我有一个大约 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/