riskivy/pcap-php

tcpdumps 的紧凑型读取/写入器

dev-master / 1.0.x-dev 2017-08-09 12:44 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:26:52 UTC


README

所有内容都可以编码或解码 简介

这个小库的目的是允许对网络数据包进行编码和解码。这是通过实现 https://github.com/zobo/php-pcap 实现的。

首先,这个库最初是为了解码转储而制作的,所以现在可能还没有添加所有的编码函数!

现在让我们看看

这里有 LibPcap\Reader,用于读取 pcap 文件,还有一个 LibPcap\Writer(它是读取器,但用于写入数据)。读取器可能只从单个文件中读取(也许未来会更多)

读取器有一个 open 方法,可以打开一个 p/cap 文件,并解析它。

然后读取器创建一个 LibPcap\File\Pcap,允许与文件交互。

文件会自动解析,并生成一个 LibPcap\Packet\PacketBuffer,这是一个可迭代的对象(你可以在 foreach 中使用它)

数据包结构

缓冲区中包含的每个数据包都具有以下结构

{
public function getHead();
public function getIpFrame();
public function getEthernetFrame();
public function getProtocol();
}

这些是基本功能,如果没有确定协议,或者可能尚未实现,那么函数 getProtocol() 将返回 null。

在解析文件时确定协议,尝试实现的所有协议。

一个协议看起来可能如下所示

{
public function getName();
public function getSourcePort();
public function getDestinationPort();
}

协议中的每个字段都是“动态的”,这意味着在解析过程中,任何字段都可以添加到对象中,所以为了确定某个数据包的协议,你需要调用 getName() 方法。

已实现的协议列表及其关联名称