0

WinDivertに問題があります。DivertSend が機能しない、GetLastError() が 1237 を返す ?

別の質問があります。IP リストに基づいてトラフィックを迂回させたいのですが、20000 を超えるレコードを含む CSV ファイルがあり、各レコードには IP 範囲が含まれています。問題は、フィルター文字列として CSV ファイルの 500 レコードのみを使用して DivertOpen を呼び出すことができることです。フィルターとして 500 を超えるレコードで DivertOpen を呼び出すと、「フィルター構文エラー」が発生しました。この問題を解決するにはどうすればよいですか。ありがとう

4

1 に答える 1

1

WinDivert は、長くて複雑なフィルター文字列 (20,000 の IP アドレスのリストなど) を処理するようには設計されていません。これは、WinDivert のドキュメントで簡単に説明されています。つまり、フィルタ文字列は、理想的には selected と short の両方である必要がありより短い/選択的であるほど優れています

短い文字列が不可能な種類のアプリケーションでは、すべてのネットワーク トラフィックをキャプチャし (たとえば、 への呼び出しをDivertOpen("true", ...)使用)、効率的な方法 (二分探索など) を使用してユーザー モード アプリケーションでフィルタリングを実行することをお勧めします。一致しないパケットを再注入するだけです。

PS: 1237 エラーの問題を報告していただきありがとうございます。

于 2013-07-20T16:46:37.790 に答える