2012-03-28 58 views
1

我正在使用Pcap.net使用Wireshark文件(pcap扩展名)发送缓冲区发送数据包,我的问题是有任何方法可以在播放期间或之前更改数据包的IP? 在这里,我充满了该文件中的数据包缓冲区的发送之前:Pcap.net项目的数据包操作

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

您需要在数据包排队之前对数据包进行操作。我认为Pcap.NET使用的数据包解析库称为Packet.NET。看看你可以用这个做什么。 – 2012-03-28 18:42:30

+0

任何例子如何做到这一点? – user979033 2012-03-28 18:45:14

+0

我更新了我的代码并创建了新图层,但现在不知道如何继续 – user979033 2012-03-28 19:00:29

回答

1

答案是肯定的。

我相信discussion in Pcap.Net forum会帮助你。通常,您需要提取所有相关层(以太网,IPv4和IPv4有效载荷),更改IPv4的层IP并构建新的数据包。

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

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

我希望这会有所帮助。