2017-03-02 151 views
0

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

我对网络了解不多。我看过一些关于这方面的主题,但不太了解它们。它的一个例子会很好。随之而来的一些解释甚至会更好。

谢谢

回答

2

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

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

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

+0

对不起,这对我来说有很多信息。我的朋友告诉我,我可以使用TCPListener在端口80上侦听,然后解开报头,如果它是对我的一个黑色URL的请求,然后将数据包重新发送到别的地方。只是想知道是否有可能做到这一点 – libra

+0

我已经实现了更改主机文件的功能,但对于编辑人员来说太容易了 – libra

+1

因此,听起来像基于流量检查的端口转发。你需要做一些非常先进的事情来做到这一点。你必须用一个足够长的TCP握手来欺骗客户端才能获得http标题,然后将该流量倒回并重播给转发的服务器,这样客户端就不知道你转发了它。没有办法描述堆栈溢出评论中会有多少工作。 – Tim