web-dev-qa-db-ja.com

C#で生のイーサネットパケットを送信するにはどうすればよいですか?

生のパケットイーサネットをC#経由で他のホストに送信する方法はありますか?それが違いを生むなら、Windows 7では。

28
Saint

Saint_plの提案に基づく:

私はおそらくより良い解決策を見つけました-SharpPcapに似ています。 Pcap.Net -WinPcapの.NETラッパーです。これで、パケットを好きなように変更できます。


参考になるリソースがいくつかあります。私はWindows 7でそのソリューションを試していませんが、開始するための良い情報が含まれている可能性があります。

Rawイーサネットパケット操作 または CodeProjectのミラー

この記事の目的は、MicrosoftプラットフォームでC#を使用して生のイーサネットパケットを送信する方法を説明することです。生のイーサネットパケットは、物理的なワイヤに送信される完全なレイヤ2ネットワークフレームです。このようなフレームを送信すると、ターゲットとソースのMACアドレスとレイヤー3プロトコルフィールドを操作できます。

また、生のソケットに関するいくつかの情報(もしあなたが興味がある場合に備えて):

クライアント(およびサーバー)ソケット通信 章全体を調べますが、ここで重要な部分を示します。

パケットを送信しないが興味深いかもしれません: C#のネットワークスニファSharpPcap-.NETのパケットキャプチャフレームワーク

19

iphelper APIには低レベルの機能がありますが、取得したいほど低くはないでしょう。

0
pm100