1

我正在使用 Pcap.net 使用带有 Wireshark 文件(pcap 扩展名)的发送缓冲区发送数据包,我的问题是有什么方法可以在播放期间或之前更改数据包的 IP?在这里,我在传输之前用文件中的数据包填充缓冲区:

int numPackets = 0;
Packet packet;
while (inputCommunicator.ReceivePacket(out packet) == PacketCommunicatorReceiveResult.Ok)
{
    ILayer layer = packet.Ethernet.ExtractLayer(); --> new layer
    sendBuffer.Enqueue(packet);
    ++numPackets;
}
4

1 回答 1

1

答案是肯定的。

我相信Pcap.Net 论坛中的讨论会对您有所帮助。

一般来说,您需要提取所有相关层(以太网、IPv4 和 IPv4 有效负载),更改 IPv4 的层 IP 并构建新数据包。

如果要确保 IPv4 校验和正确,则需要将 IPv4 层校验和字段设置为空。

如果你有 TCP 或 UDP 并且你想确保它们的校验和是正确的,你需要提取相关的传输层,将其校验和字段更改为 null,并从以太网、IPv4、传输和传输有效负载层构建数据包。

我希望这有帮助。

于 2012-03-30T17:15:32.403 回答