使用C#/ C++,是否可以限制网络流量?

Geo*_*ton 5 c# c++ sockets windows networking

我正在开发一个父母监控/跟踪应用程序,它具有锁定所有互联网活动的功能.虽然禁用网络适配器似乎是一个简单的解决方案,但应用程序必须能够远程重新启用互联网 - 因此网络需要保持启用状态,达到一定限度.

不幸的是,我还没有找到一种在实践中实现这一目标的合适方法.没有这个功能,应用程序几乎已经死了.所以我遇到了一个巨大的障碍,我对任何建议持开放态度.

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

  1. 放弃所有互联网活动.然后
  2. 仅将Internet活动打开到指定的端口和IP地址.(我的服务,将被轮询)

简单的目标吧?最近没那么多.

虽然我希望在C#中实现这一点,但我知道这可能是一个长镜头,我对C++解决方案持开放态度,可以通过我的应用程序将其称为资源.

另请注意,我无法在用户的系统上安装任何第三方软件,因为此解决方案需要包罗万象.

提前致谢!

Rem*_*anu 7

您需要使用Windows筛选平台将自定义层注入IP堆栈.此SDK专门针对家长控制程序等.毋庸置疑,作为任何内核模块,它必须在C中开发,您必须具备Windows内部的专业知识:

Windows Filtering Platform API旨在供使用C/C++开发软件的程序员使用.程序员应该熟悉使用用户模式和内核模式组件的网络概念和系统设计.