【问题标题】:Stop a TCP stream when listening to all ports侦听所有端口时停止 TCP 流
【发布时间】:2012-04-21 15:21:34
【问题描述】:

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

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

如果我做不到,也许我会即时替换一些 HTMLElements。

【问题讨论】:

    标签: c# .net tcp stream


    【解决方案1】:

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

    这个解决方案也有一些问题:

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

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

    【讨论】:

    • 好的。无论如何,关闭连接并充当防火墙可能太激烈了。我想通过玩 HTMLElements 来审查它会更干净、更酷和“2012”。即:用停止符号替换 HTML 图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多