【问题标题】:pcap-ng to pcap using Java使用 Java 将 pcap-ng 转换为 pcap
【发布时间】:2019-01-26 22:07:04
【问题描述】:

是否可以使用 Java(不使用 editcap)将 pcap-ng 文件转换为 pcap?

我注意到一些 pcap 被读取为 .pcap 格式,但是当我查看 Wireshark 'Summary' 时,它被识别为 pcap-ng 格式。

提前感谢您的帮助 湿婆

【问题讨论】:

    标签: java wireshark pcap


    【解决方案1】:

    是否可以使用 Java 将 pcap-ng 文件转换为 pcap(不使用 editcap)?

    编写一个使用 libpcap(使用 libpcap 的包装器)读取捕获文件并再次将其写出的 Java 程序。较新版本的 libpcap 可以读取没有多种链路层类型的 pcapng 文件,就像它们可以读取 pcap 文件一样;他们目前只支持写 pcap 文件,不支持 pcapng 文件。

    (这在 Windows 上不起作用,因为还没有基于这些较新版本的 libpcap 之一的 WinPcap 版本。)

    我注意到一些 pcap 被读取为 .pcap 格式,但是当我查看 Wireshark 'Summary' 时,它被识别为 pcap-ng 格式。

    如果您的意思是“我注意到某些被 Wireshark 识别为 pcapng 的文件可以被使用 libpcap 读取捕获文件的程序读取”,那是真的,但并不意味着它们“被读取为 . pcap 格式”——正如我上面所说,较新版本的 libpcap 可以使用可以读取 pcap 文件的相同 API 读取一些 pcapng 文件。

    顺便说一句,这可能意味着您不需要将文件转换为 pcap。您需要将 pcapng 文件转换为 pcap 的唯一原因是允许仅读取 pcap 文件的程序,例如使用旧版本 libpcap(或当前版本的 WinPcap)的程序,或具有自己代码的程序来读取 pcap不支持 pcapng 的文件,来读取这些文件。

    【讨论】:

    • 是的,对不起,我忘了说我使用的是 Windows。我正在使用使用 Winpcap 的 jNetPcap 库,因此我需要将 pcap-ng 转换为 pcap 才能使用这个库
    • 那么,使用 editcap 可能是最简单的方法。否则,您将不得不编写自己的代码来读取 pcapng 文件,或者从较新版本的 libpcap 构建自己的 WinPcap 并让 jNetPcap 使用该版本。
    • 或者使用 Npcap 而不是 WinPcap; Npcap 基于最新版本的 libpcap,可以读取一些 pcapng 文件(文件只有一种链接层类型和一种快照长度 - 这是由于 libpcap 中的 API 限制)。
    猜你喜欢
    • 2013-08-02
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多