在C#中过滤TCP数据包

时间:2008-11-25 07:02:39

标签: c# tcp

我正在编写一个应用程序,其中所有对互联网的请求都应该像防火墙一样。这样我就可以阻止对特定网站的请求。在我的情况下,程序将在同一台机器上运行。我尝试过promiscous方法但是使用它我们只能捕获所有来自机器的数据包,

2 个答案:

答案 0 :(得分:3)

最简单的方法是编写Layered Service Provider (LSP)。 Microsoft SDK中还有一个关于开发LSP的示例。不像驱动程序类型的防火墙设置那么安全,但更容易实现。

有可能用C#做到这一点,但我从未尝试过。要研究的东西。如果没有,那么只需用C / C ++创建一个实现LSP的本机DLL,然后让它与你的应用程序通信。

答案 1 :(得分:1)

您必须在TCP / IP堆栈中插入代码,如果我理解正确,则需要Windows驱动程序。

C#无法编译本机Windows驱动程序,因此您需要使用库或DLL来实现至少部分功能。使用C ++寻找解决方案。

- 亚当