使用C#/ C ++,是否可以限制networkingstream量?

我正在开发一个家长监控/跟踪应用程序,具有locking所有互联网活动的function。 虽然禁用networking适配器似乎是一个简单的解决scheme,但应用程序必须能够远程重新启动互联网,因此networking需要保持启用状态,并达到一定的限制。

不幸的是,我还没有find一个合适的方法来实现这一点。 没有这个function,应用程序在水中几乎死了。 所以我打了一个巨大的路障,我愿意接受任何build议。

用我的应用程序,我需要达到两个要求:

  1. 放下所有互联网活动。 接着
  2. 只打开Internet活动到指定的端口和IP地址。 (我的服务,将被调查)

简单的目标,对吧? 不是最近。

虽然我期望在C#中实现这一点,但是我明白这可能是一个长期的尝试,我可以通过我的应用程序向C ++解决scheme开放。

另外请注意,我不能在用户的系统上安装任何第三方软件,因为这个解决scheme需要包罗万象。

提前致谢!

您需要使用Windows过滤平台将自定义层注入到IP堆栈中。 该SDK专门针对家长控制程序等。 不用说,作为任何内核模块,它必须在C开发,你必须有Windows内部的专业知识:

Windows过滤平台API是为使用C / C ++开发软件的程序员设计的。 程序员应该熟悉使用用户模式和内核模式组件的网络概念和系统设计。

可能能够使用WinINET API来实现这一点; WinINET为大多数/许多Windows应用程序定义了基本的Internet设置,并可用于定义代理信息。 考虑到这一点,您可能可以创建一个拒绝除您之外的所有请求的代理。

不是一个直接的答案,但是这种事情通常是通过串口连接或者连接到“可信”LAN的第二个NIC进行的。