2012-03-28 17 views
1

Wiresharkファイル(pcap拡張子)で送信バッファを使用してパケットを送信するためにPcap.netを使用しています。再生中または再生前にパケットの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です。あなたがそのことで何ができるかを見てみましょう。 –

+0

どのようにそれを行うにはどのような例ですか? – user979033

+0

私のコードを更新して新しいレイヤーを作成しますが、続行する方法はありません – user979033

答えて

1

答えはイエスです。

私はdiscussion in Pcap.Net forumがあなたを助けると信じています。

一般に、関連するすべてのレイヤー(イーサネット、IPv4およびIPv4ペイロード)を抽出し、IPv4のレイヤーIPを変更して新しいパケットを構築する必要があります。

IPv4チェックサムが正しいことを確認するには、IPv4レイヤーのチェックサムフィールドをnullに設定する必要があります。

TCPまたはUDPがあり、チェックサムが正しいことを確認するには、関連するトランスポート層を抽出し、そのチェックサムフィールドをヌルに変更し、イーサネット、IPv4、トランスポートおよびトランスポートペイロード層。

こちらがお役に立てば幸いです。

関連する問題