2012-03-28 60 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,傳輸和傳輸有效負載構建數據包層。

我希望這會有所幫助。