6

LinuxからWindowsに通信ライブラリを移植しています。私は自分のアプローチがほとんどの場合何であるかを知っています。ライブラリは、すべての通信にすべての生のイーサネットレベルフレームを使用します。

私が移植しているライブラリーは、PF_PACKETファミリーとstructsockaddr_llを利用しています。MSDN winsockサイトを閲覧した後、同等のファミリ/構造体が見つかりませんでした。私のアプローチはここにあるべきですか?

私にはいくつかのアイデアがありますが、それらが良いアイデアであるかどうかはわかりませんが、不特定の場合はPF_UNSPECを使用できます。PF_PACKETが表す数値を渡すことができます(これはunsigned shortです)。Windowsで独自のsockadddr_ll構造体を作成することもできます。

これらのアイデアはどれも私には良いとは思えません。実際には機能しない可能性が高いハックのように見えます。

何か提案があれば、よろしくお願いします。

4

1 に答える 1

3

Raw Sockets(ネットワーク層、トランスポート層、およびアプリケーション層の情報を記述する必要がある場所)を参照していると思います。新しいWindowsバージョン(XP SP2以降)では、rawソケットのサポートが非常に制限されており、多くの制限があります。

詳細(「rawソケットの制限」までスクロールダウン)

解決策は、WinPcapを使用することです。これにより、これらのシステムで生のパケットを送信できます。

于 2009-04-20T05:26:19.403 に答える