Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 侦听所有端口时停止TCP流_C#_.net_Tcp_Stream - Fatal编程技术网

C# 侦听所有端口时停止TCP流

C# 侦听所有端口时停止TCP流,c#,.net,tcp,stream,C#,.net,Tcp,Stream,我正在编写一个应用程序,它使用REGEX监听特定数据包的端口。我可以看到原始的TCP流,但我想知道是否可以在没有任何数据包伪造库的情况下拦截和停止该流 例如: 用户在一个页面上导航,页面上有单词P*RN或“J*st**Bi*ber”,他会自动失去这个特定的连接 如果我做不到,也许我会在运行中替换一些HTMLElements。您可以实现一个代理服务器,这样从您的用户到internet(以及从internet返回)的所有流量都将通过您的代理。您可以使用.NET网络API(无数据包伪造)实现代理。当您

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

例如: 用户在一个页面上导航,页面上有单词P*RN或“J*st**Bi*ber”,他会自动失去这个特定的连接


如果我做不到,也许我会在运行中替换一些HTMLElements。

您可以实现一个代理服务器,这样从您的用户到internet(以及从internet返回)的所有流量都将通过您的代理。您可以使用.NET网络API(无数据包伪造)实现代理。当您想要断开连接时,您可以关闭TCP流,或者发送回错误响应

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

  • 您必须为要筛选的每个协议(SMTP、IMAP、POP3)实现特定的代理
  • 连接到internet时,您需要强制用户使用代理服务器(可以在网络级别进行配置)
  • 它不会与SSL(HTTPS)一起工作,因为流量是加密的
编辑
我认为没有办法使用.NETAPI拦截TCP流。但是,您可以转发TCP流(接受客户端连接,然后转发客户端和服务器之间的所有通信)。既然您接受了客户端TCP连接,您也可以终止它。

Ok。不管怎样,关闭一个连接并像防火墙一样工作可能太过激烈了。我想通过玩HTMLElements来审查更干净、更酷、更“2012”。即:用停止标志替换HTML图像。