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()
方法。