Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Socks4 - Mehrfachverbindungslogikproblem ^^ (https://www.delphipraxis.net/141151-socks4-mehrfachverbindungslogikproblem-%5E%5E.html)

Aphton 3. Okt 2009 21:41


Socks4 - Mehrfachverbindungslogikproblem ^^
 
Hallöchen liebe Leute

Ich habe eine Frage zu dem sogenannten "Handshake" bei einer Socks4 Verbindung. Die Frage liegt nicht genau bei einer normalen Connection, sondern viel eher darin, wie das ganze funktioniert, wenn mehrere Socks4 Server hintereinander geschaltet werden.

Ich habe beim Internet Explorer den Proxy eingeschaltet und als Daten die lokale IP angegeben
dh. dieser verbindet sich mit meiner Applikation - welches auch wunderbar funktioniert.
Der Browser schickt zuert den Header, der so aussieht:
Delphi-Quellcode:
  TSocks4Header = record
    Version: Byte; // 0x04 -> SOCKS4
    Command: Byte; // 0x01 = stream connection; 0x02 port binding
    Port: Word;    // in network byteorder
    IP: DWord;     // in network byteorder
    UserID: Array[0..63] of Char; // zer0 terminated
  end;
Bei der Anfrage enthält Command den Wert 1. Meine Applikation verbindet sich dann nun zu dieser IP Adresse und antwortet dem Browser je nachdem, obs erfolgreich war.
Ab diesem Punkt - Handshake ist abgeschlossen - werden nun die Daten (Anfrage vom Browser) gesendet. Diese empfängt meine Applikation und leitet sie an die Wunsch IP und von dieser empfängt es anschließend eine Antwort, die an den Browser geschickt wird.

So nun die konkrete Frage: Wie schalte ich nun - sagen wir - vier weitere Socks4 Server dazwischen?

Ich hab mir anfangs gedacht, nachdem der Handshake erfolgreich durchgeführt wurde, schicke ich einen Socks4 Header Stream, das ich vorher zusammengesetzt habe.
Nur dürfte das nicht funktionieren, da beim Handshake nur 1 Header ankommt bzw erst nach dem Handshake die Daten an die Wunsch IP weitergeleitet werden.

Ich bin iwie aussichtslos :|
Im Internet hab ich nur ein Forum gefunden, nur wurde es dort auch nicht beantwortet und extra anmelden wollt ich mich nun auch nicht..

Ich hoffe, mir kann irgendeiner helfen. Und versucht bitte so genau wie möglich zu sein.
Danke schon im voraus.

MfG

Aphton 4. Okt 2009 12:50

Re: Socks4 - Mehrfachverbindungslogikproblem ^^
 
OK ich glaube ich habe die Lösung

Code:
Legende:

  IE - Internet Explorer
  ME - Meine Applikation
  P1 - Server 1
  P2 - Server 2
  PN - Server N
  H - Host

Verbindungskette:

  IE <-> ME <-> P1 <-> P2 <-> ... <-> PN <-> H

Lösung zum Verbindungsaufbauproblem:

  1. IE schickt ME den Socks4 Header mit der IP = Host
  2. ME schickt nun seinerseits einen neuen Socks4 Header mit IP = P2 an P1
  3. ME schickt anschließend einen weiteren Socks4 Header mit IP = PN an P1 -> dieser leitet es an P2 und dieser baut nun die Verbindung zu ..PN auf.
  4. ME schickt letztendlich den letzten Socks4 Header mi IP = Host an P1 -> der leitet es weiter an P2 - und der wiederum -> PN = nun ist die Kette vollständig
  5. Jetzt werden die Daten geschickt
Immer wieder schön, wenn man seine Probleme selbst lösen kann.
Trotzdem danke an die 46, die diesen Thread gelesen haben.

MfG

Valle 4. Okt 2009 13:13

Re: Socks4 - Mehrfachverbindungslogikproblem ^^
 
Zitat:

Zitat von Aphton
Trotzdem danke an die 46, die diesen Thread gelesen haben.

Bitte bitte, kein Problem! :mrgreen:

Liebe Grüße,
Valle


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz