C#中的分层服务提供程序

时间:2011-04-16 23:44:01

标签: c# windows networking packet-capture winsock-lsp

我正在寻找用C#编写LSP来捕获和重定向UDP数据包。

我对LSP的经验不多,但我听说他们可以做这种事情,如果我错了请纠正我,但这可能吗?

我会喜欢一些示例代码,但我会接受任何人可以就此主题提供的任何信息或建议。 :)

4 个答案:

答案 0 :(得分:2)

您可以在https://github.com/SOLON7/HTTPSniffer查看LSP的代码示例(c#)。 它用于32个Windows操作系统,但您可以轻松地将其移植到64(在安装过程中设置LspCatalog64Only)

您应该记住,在与其他LSP提供商发生冲突的情况下,您必须为您的提供商生成新的GUID。

答案 1 :(得分:0)

看一下komodia有一篇关于LSP的文章+例子,不幸的是在C ++中。

但转换它不应该是不可能的。

答案 2 :(得分:0)

您需要为此构建LSP,然后通过P / Invoke访问它。看看WS SPI规范: ftp://ftp.microsoft.com/bussys/Winsock/Winsock2/WSSPI22.DOC

答案 3 :(得分:-1)

你肯定想写自己的吗?

WinPCap可以很好地捕获数据包。 SharpPcap同样出色地让你使用C#中的WinPCap。两者都是免费的,我认为是开源的。

(我不确定WinPCap是否在底层使用LSP,但最终的结果是你可以检查数据包,所以可能只是你想要的东西)