@cto.af/pcap-ng-parser

中文文档
3.0.2发布于 2026/03/09BSD-3ES Module构建来源已验证近 30 天下载 2758

用于解析.pcapng文件和tcpdump输出的节点.js模块.

中文使用文档
文档目录5 节
  1. Via.pcapng 节点文件
  2. .pcapng 文件在德诺
  3. Bun 中的 . pcapng 文件
  4. 节点的 TCPDump 视频
  5. 其他实例

概览

@cto.af/pcap-ng-parser是一个基于流的模块来解码,打印和分析 网络交通包。 通过这个模块,您可以读取已有的 .pcap或.pcapng文件或将其连接到活动流.

执行:

安装

本模块可通过 npm 登记。 。 。 .

$ npm install @cto.af/pcap-ng-parser

使用量

请注意,在任何现代联署材料中,一揽子方案应单独运作 运行时间(包括浏览器). 然而,从文件读取需要一些 运行时间依赖代码 .

Via.pcapng 节点文件

以下是一个简单的例子,说明如何从一个有效的.pcapng文件登录出包到控制台 myfile.pcapng。 。 。 .

import {PCAPNGParser} from '@cto.af/pcap-ng-parser';
import fs from 'node:fs/promises';
const parser = new PCAPNGParser();
const file = await fs.open('examples/res/myfile.pcapng');

parser
  .on('data', parsedPacket => {
    console.log(parsedPacket);
  })
  .on('interface', interfaceInfo => {
    console.log(interfaceInfo);
  });
file.readableWebStream().pipeTo(parser);

在上述例子中,我们从文件和管子创建出一个新的可读结构 实例 parser 它将引发各种事件.

.pcapng 文件在德诺

import {PCAPNGParser} from '@cto.af/pcap-ng-parser';
const pcapNgParser = new PCAPNGParser();

pcapNgParser
  .on('data', parsedPacket => {
    console.log(parsedPacket);
  });

const f = await Deno.open('examples/res/myfile.pcapng');
f.readable.pipeTo(pcapNgParser);

Bun 中的 . pcapng 文件

import {PCAPNGParser} from './src/index.ts';
const pcapNgParser = new PCAPNGParser();

pcapNgParser
  .on('data', parsedPacket => {
    console.log(parsedPacket);
  })
  .on('interface', interfaceInfo => {
    console.log(interfaceInfo);
  });

const f = Bun.file('examples/res/myfile.pcapng');
f.stream().pipeTo(pcapNgParser);

节点的 TCPDump 视频

您也可以使用 TCPDump 管道 process.stdin 用于命令行交互.

import {PCAPNGParser} from '@cto.af/pcap-ng-parser';
import {Readable} from 'node:stream';
const pcapNgParser = new PCAPNGParser();

pcapNgParser
  .on('data', parsedPacket => {
    console.log(parsedPacket);
  })
  .on('interface', interfaceInfo => {
    console.log(interfaceInfo);
  });

Readable.toWeb(process.stdin).pipeTo(pcapNgParser);
$ sudo tcpdump -w - | node exampleAbove.js

请注意,为了使用tcpdump,你必须是一个超级用户。 参见 tcpdump 文档 详细情况.

进一步注意:如果指定一个接口来与"-i"收听,一些系统中的tcpdump会使用旧的PCAP格式,PAPPNGParser会读取该格式的精细.

其他实例

其他例子可见于 示例目录。 。 。 .

它允许您从样本抓取文件( 默认) 读取文件( 如果您 在命令行上指定一个文件名,或 stdin(如果指定“-”为 输入文件).

类 PAPPNGParser

PAPPNGParser 是一个扩展 流线。 变形 类编辑 PAPPNGParser级起火事件如下:

  • data: 解析了增强包或简单块.
  • section: 解析了一节标题块.
  • interface: 一个界面块已被解析 .
  • names: 解析了名称分辨率块.
  • secrets:解密密块被解析出.
  • stats: 解析了界面统计块.
  • custom: 自定义块已被解析 .
  • blockType: 已收到未知块类型 .

见全 API 文档 页:1 事件参数的类型.

捐款

参见 贡献指南 详细介绍如何捐款.

许可证

本模块由BSD-3开放软件许可证覆盖. 评议 许可证文档 更多信息.

证明

这个代码是从 https://github.com/ CollinearGroup/pcap-ng-parser 页面存档备份,存于互联网档案馆 应付款 无法维持 为简化事项,版权仍属于 原始作者,包括在此寄存器中所做的所有更改. 如果 原作者联系我(最容易的是在这里提出问题),所有 这可以改变 任何适合他们的方式.

增加了以下内容:

  • 固定临界范围错误
  • 通过去除已破损的 完成代码, 使“ 结束” 和“ 完成” 事件正确起火 。 注意您需要为“ 数据” 添加一个事件, 才能获取这些事件或“ 关闭 ” 就像所有节点变流一样.
  • 已转换为 ES6(震动)
  • 已添加类型脚本
  • 最新的依赖关系
  • 在 @cto.af 风格中添加了林丁( 以方便维护)
  • 添加测试覆盖范围
  • 将“ 主” 分支重新命名为“ 主要 ”
  • 添加用于测试和出版的 Github 动作
  • 在读取和代码中固定断开的链接
  • 固定问题,可选择
  • 现在读取所支持的块类型的所有选项, 当已知时给出它们的名称
  • 在输入流中读取出意料大小的固定问题
  • 添加中止符号支持
  • 添加对流中多个区头块的支持, 包括 异能的改变.
  • 添加对简单包块的支持 .
  • 添加对名称分辨率块的支持 .
  • 添加对界面统计块的支持 .
  • 添加了解密密块的初始支持 .
  • 添加自定义块支持 .
  • 添加增强包子旗解码.
  • 在JS Dates中增加了转换时间戳. 尚未处理时区 。 (尖叫声)
  • 添加生成 API 文档 .
  • 添加了旧.pcap格式的执行,带有自动检测功能.
  • 添加了链接Type名称的解码 .
  • 已切换到网络流和Uint8Array,用于可移植性. (尖叫声)

Tests codecov

版本与发布记录

@cto.af/pcap-ng-parser 共发布 7 个版本,首次发布于 2025/10/24;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.0.2latest2026/03/098 个月前
3.0.12025/12/1510 个月前
3.0.02025/12/1510 个月前
2.1.02025/11/031 年前
2.0.32025/10/241 年前
2.0.22025/10/241 年前

关于 @cto.af/pcap-ng-parser 的常见问题

@cto.af/pcap-ng-parser 是什么?

用于解析.pcapng文件和tcpdump输出的节点.js模块.

如何安装 @cto.af/pcap-ng-parser?

在项目目录运行 npm install @cto.af/pcap-ng-parser,或使用 pnpm add / yarn add / bun add。

@cto.af/pcap-ng-parser 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cto.af__pcap-ng-parser 是否存在。

@cto.af/pcap-ng-parser 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cto.af/pcap-ng-parser 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cto.af/pcap-ng-parser 可以商用吗?

@cto.af/pcap-ng-parser 使用 BSD-3 许可。声明的许可为 BSD-3,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@cto.af/pcap-ng-parser 的下载量有多少?

根据 npm 官方下载统计,@cto.af/pcap-ng-parser 在 2026/10/11 – 2026/11/09 这 30 天内被下载 2,758 次,日均约 92 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cto.af/pcap-ng-parser 还在维护吗?

最新版本 3.0.2 发布于 2026/03/09(8 个月前);至今共发布 7 个版本,其中过去 12 个月发布了 3 个;首次发布于 2025/10/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。