2017-03-02 3 views
0

Also im Grunde habe ich eine URL-Blacklist, und in meinem Projekt müsste ich C# verwenden, um Port 80 zu hören und jede Anfrage an diese URLs an 127.0.0.1 umzuleiten.C# Portweiterleitung Beispiel

Ich weiß nicht viel über Vernetzung.Ich habe einige Themen auf SO gesehen, aber verstehe sie nicht ganz. Ein Beispiel dafür wäre nett. Eine Erklärung, die kommt, wäre sogar besser.

Vielen Dank

Antwort

2

Ihr Betreff zeigt an, dass Sie Portweiterleitung wünschen. Port-Forwarding hat nichts mit URLs zu tun - und würde TCP/IP sehr gut zu implementieren erfordern, aber URLs würden nicht "umgeleitet" werden.

Ihre Beschreibung zeigt an, dass Sie Port 80 anhören und Anforderungen an ungültige URLs umleiten möchten. Das bedeutet, dass Sie zuerst einen DNS-Server implementieren müssen, der diese fehlerhaften URLs an Ihren Port 80 umleitet, einen HTTP-Server implementiert, die Host-Header untersucht, um festzustellen, was wirklich vom Client angefordert wurde, Ihre schwarze Liste zu überprüfen und dann eine http zu bilden Antwort, um dem Client mitzuteilen, dass er umgeleitet werden soll, aber dann muss Ihr vergifteter DNS-Server diese Anfrage nicht erneut an Sie senden.

Ich vermute, was Sie wirklich wollen, ist nur ein DNS-Server, oder legen Sie Ihre schlechten URLs in Ihre Hosts-Datei und zeigen Sie alle auf 127.0.0.1.

+0

Sorry, es ist eine Menge Informationen für mich. Mein Freund sagte mir, ich kann TCPListener verwenden, um an Port 80 zu hören, dann entpacken Sie die Header, wenn es eine Anfrage an eine meiner geschwärzten URL ist, dann senden Sie das Paket an woanders.Ich frage mich, ob es eine Möglichkeit ist, es zu tun – libra

+0

Ich implementiere bereits die Funktion, um Hosts-Datei zu ändern, aber es ist zu einfach für die Leute zu bearbeiten – libra

+1

So klingt das wie Port fowarding basierend auf Inspektion des Verkehrs. Sie müssen einige sehr fortgeschrittene Sachen machen, um das zu tun. Sie müssten den Client mit einem TCP-Handshake lange genug vortäuschen, um die HTTP-Header abzurufen, dann den Datenverkehr zum weitergeleiteten Server zurückspulen und wiedergeben, genau so, dass der Client nicht wusste, dass Sie ihn weitergeleitet haben. Es gibt keine Möglichkeit zu beschreiben, wie viel Arbeit in einem Stack-Overflow-Kommentar steckt. – Tim