WinDivert问题

时间:2013-07-20 09:34:58

标签: c++ c network-programming

我对WinDivert有疑问。 DivertSend不起作用,GetLastError()返回1237?

我有另一个问题。我想基于IP列表转移流量,我有一个包含超过20000条记录的CSV文件,每条记录都包含一个IP范围,问题是我只能将我的CSV文件的500条记录作为过滤字符串调用DivertOpen。如果我将DivertOpen作为过滤器调用超过500条记录,则会出现“过滤器语法错误”。我该如何解决这个问题。 感谢

1 个答案:

答案 0 :(得分:0)

WinDivert不是为处理长/复杂的过滤字符串(例如20,000个IP地址列表)而设计的。这在WinDivert documentation中简要提到:即,理想情况下,过滤字符串应该是 selective short ,并且越短/选择越好。

对于您的应用类型,如果无法使用短字符串,您最好捕获所有网络流量(例如,通过调用DivertOpen("true", ...))并在用户模式应用程序使用一些有效的方法(如二进制搜索)。只需重新注入不匹配的数据包。

PS:感谢1237错误报告的报告。