收听所有端口时停止TCP流

时间:2012-04-21 15:21:35

标签: c# .net tcp stream

我正在编写一个应用程序,它使用REGEX侦听特定数据包的端口。我可以看到原始的TCP Stream,但我想知道是否可以在没有任何数据包伪造库的情况下拦截和停止此流。

实施例: 用户在有P * RN或“J * st ** Bi * ber”字样的页面上导航,并自动丢失此特定连接。

如果我不能这样做,也许我会动态更换一些HTMLElements。

1 个答案:

答案 0 :(得分:1)

您可以实施代理服务器,以便从您的用户到互联网(以及返回)的所有流量都将通过您的代理。您可以使用.NET网络API(无数据包伪造)实现代理。如果要删除连接,可以关闭TCP流,或者发回错误响应。

此解决方案也存在一些问题:

  • 您必须为要过滤的每个协议(SMTP,IMAP,POP3)
  • 实施特定代理
  • 您需要强制用户在连接到互联网时使用您的代理服务器(可以在网络级别配置)
  • 由于流量已加密
  • ,因此无法使用SSL(HTTPS)

修改 我不认为有一种方法可以使用.NET API拦截TCP流。但是,您可以转发 TCP流(接受客户端连接,然后转发客户端和服务器之间的所有通信)。由于您接受了客户端TCP连接,因此您也可以终止它。