# @cto\.af/pcap-ng-parser 中文文档

规范地址：https://npmcn.com/package/%40cto.af/pcap-ng-parser/

版本：3\.0\.2
npm 元数据更新时间：2026-03-08T18:33:22.500Z
中文译文更新时间：2026-11-11T07:42:51.957Z
软件包许可：BSD-3

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cto.af/pcap-ng-parser
原文对照：https://npmcn.com/package/%40cto.af/pcap-ng-parser/?lang=original
项目主页：https://github.com/cto-af/pcap-ng-parser#readme
源码仓库：https://github.com/cto-af/pcap-ng-parser

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：37.3 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20
- 运行依赖：3 个
- 首次发布：2025-10-23T19:15:19.999Z
- 最新版本发布：2026-03-08T18:33:22.193Z
- 近 30 天下载量：2758（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 3 个）

## 中文简介

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

## 安装

```sh
npm install @cto.af/pcap-ng-parser
```

也可以使用：`pnpm add @cto.af/pcap-ng-parser`、`yarn add @cto.af/pcap-ng-parser`、`bun add @cto.af/pcap-ng-parser`

## README

# 概览

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

执行:

-   [草稿- etf- opsawg- pcap-06](https://www.ietf.org/archive/id/draft-ietf-opsawg-pcap-06.html)
-   [草稿- etf- opsawg- pcapng-04](https://www.ietf.org/archive/id/draft-ietf-opsawg-pcapng-04.html)

# 安装

本模块可通过 [npm 登记](https://www.npmjs.com/)。 。 。 .

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

# 使用量

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

## Via.pcapng 节点文件

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

```javascript
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 文件在德诺

```js
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 文件

```js
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` 用于命令行交互.

```javascript
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);
```

```bash
$ sudo tcpdump -w - | node exampleAbove.js
```

请注意,为了使用tcpdump,你必须是一个超级用户。 参见 [tcpdump 文档](http://www.tcpdump.org/manpages/tcpdump.1.html) 详细情况.

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

## 其他实例

其他例子可见于 [示例目录](https://npmcn.com/examples/)。 。 。 .

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

# 类 PAPPNGParser

PAPPNGParser 是一个扩展 [流线。 变形 类](https://nodejs.org/api/stream.html#stream_class_stream_transform)编辑 PAPPNGParser级起火事件如下:

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

见全 [API 文档](https://cto-af.github.io/pcap-ng-parser/) 页:1 事件参数的类型.

# 捐款

参见 [贡献指南](https://npmcn.com/docs/CONTRIBUTING.md) 详细介绍如何捐款.

# 许可证

本模块由BSD-3开放软件许可证覆盖. 评议 [许可证文档](https://npmcn.com/docs/LICENSE.md) 更多信息.

# 证明

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

增加了以下内容:

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

[![Tests](https://github.com/cto-af/pcap-ng-parser/actions/workflows/node.js.yml/badge.svg)](https://github.com/cto-af/pcap-ng-parser/actions/workflows/node.js.yml) [![codecov](https://codecov.io/gh/cto-af/pcap-ng-parser/graph/badge.svg?token=Akjw67WYcn)](https://codecov.io/gh/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 和提交记录判断。

