【发布时间】:2010-09-23 21:53:12
【问题描述】:
我正在编写一个应用程序,所有对 Internet 的请求都应该从它发出,就像在防火墙中一样。这样我就可以阻止对特定网站的请求。在我的情况下,程序将在同一台机器上运行。我已经尝试过混杂的方法,但是使用它我们只能捕获所有进出机器的数据包,
【问题讨论】:
我正在编写一个应用程序,所有对 Internet 的请求都应该从它发出,就像在防火墙中一样。这样我就可以阻止对特定网站的请求。在我的情况下,程序将在同一台机器上运行。我已经尝试过混杂的方法,但是使用它我们只能捕获所有进出机器的数据包,
【问题讨论】:
您必须将代码插入 TCP/IP 堆栈,如果我理解正确,这需要 Windows 驱动程序。
C# 无法编译本地 Windows 驱动程序,因此您需要使用库或 DLL 来实现至少部分功能。寻找使用 C++ 的解决方案。
-亚当
【讨论】:
最简单的方法可能是写一个Layered Service Provider (LSP)。 Microsoft SDK 中也有一个关于开发 LSP 的示例。不如驱动型防火墙设置安全,但更容易实施。
“可能”有一种使用 C# 的方法,但我从未尝试过。有什么要调查的。如果不是,那么只需使用 C/C++ 创建一个实现 LSP 的本机 DLL,然后让它与您的应用程序通信。
【讨论】: