谢谢。
答案 0 :(得分:1)
如果您安装了 Wireshark(对于 Windows 和 macOS,从用于 Linux、*BSD 和其他未命名为“macOS”的 UN*X 的软件包安装 download from the main Wireshark site),它带有一个程序名为 editcap 的工具可以将一个捕获文件拆分为多个较小的捕获文件。
请注意,默认情况下,它写入的是 pcapng 文件,而不是 pcap 文件,因此如果 Scapy 使用自己的代码读取文件,而不是使用 libpcap(较新版本的 libpcap 可以读取一些 pcapng 文件),您可能必须将 -F pcap
指定为 editcap 的标志才能使其写入 pcap 文件。
(还要注意,pcap 文件不是文本文件,因此您不能“逐行”读取它们 - pcap 文件中没有“行”这样的东西。它们'阅读起来并不简单,因此如果可能,您最好使用 editcap,而不是编写自己的程序来读取 pcap 文件。
如果您确实编写自己的程序来读取 pcap 文件,那么您最好使用 libpcap 来读取它,而不是尝试自己解析 pcap 文件格式。如果您使用 Python 编写它,请参阅例如 pcapy。)
答案 1 :(得分:0)
我可以提供一些一般性建议。
This website 描述了 PCAP 文件的格式。根据该网站,格式如下:
Global Header | Header1 | Data1 | Header2 | Data2 | ... | HeaderN | DataN
他的页面解释了如何读取全局标题,并使用 open 和 seek 函数您可以从文件中读取 N 个字节,无论是从头开始还是从更远的某个点开始。然后,您可以将这个 20GB 的文件分解为一些较小的文件,文件的大小取决于您的可用内存。