【问题标题】:c# Port forwarding examplec# 端口转发示例
【发布时间】:2017-07-21 14:38:26
【问题描述】:

所以基本上我有一个 URL 黑名单,在我的项目中,我需要使用 c# 来监听端口 80 并将对这些 URL 的任何请求重定向到 127.0.0.1。

我对网络了解不多。我看过一些关于 SO 的主题,但不太了解。它的一个例子会很好。出现的一些解释甚至会更好。

谢谢

【问题讨论】:

    标签: c# networking tcp portforwarding


    【解决方案1】:

    您的主题表明您想要端口转发。端口转发与 URL 无关——并且需要很好地理解 TCP/IP 才能实现,但它不会“重定向” URL。

    您的描述表明您想监听端口 80 并将请求重定向到错误的 URL。这意味着您需要首先实现一个 DNS 服务器,它将错误的 URL 重定向到您的端口 80,实现一个 HTTP 服务器,检查主机头以确定客户端真正请求的内容,检查您的黑名单,然后形成一个 http响应告诉客户端重定向,但不知何故让您中毒的 DNS 服务器不再向您发送该请求。

    我怀疑你真正想要的只是一个 DNS 服务器,或者将你的错误 URL 放在你的 hosts 文件中并将它们全部指向 127.0.0.1。

    【讨论】:

    • 对不起,这对我来说有很多信息。我的朋友告诉我,我可以使用 TCPListener 在端口 80 上监听,然后打开标头,如果它是对我的一个黑色 URL 的请求,然后将数据包重新发送到其他地方。只是想知道这是否是一种可能的方法
    • 我已经实现了修改hosts文件的功能,但是修改起来太容易了
    • 所以这听起来像是基于流量检查的端口转发。你需要做一些非常高级的事情来做到这一点。您必须使用足够长的 TCP 握手来欺骗客户端以获取 http 标头,然后倒带并将该流量重播到转发的服务器,这样客户端就不会知道您转发了它。无法描述堆栈溢出注释中的工作量。
    • 感谢您提供的信息。我会尝试寻找其他方法lol
    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 2015-07-01
    • 2012-05-16
    • 2012-11-03
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多