AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TCP weiterleitung

Ein Thema von DelTurbo · begonnen am 27. Nov 2017 · letzter Beitrag vom 29. Nov 2017
Antwort Antwort
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.245 Beiträge
 
Delphi 2007 Architect
 
#1

AW: TCP weiterleitung

  Alt 28. Nov 2017, 11:02
Kurze Rückmeldung:
Das mit dem TIdMappedPortTCP klappt wunderbar. Ich habe das nun zum eigentlichen Testen einfach auf eine Leere Form gezogen, MappingHost und Mapping Port eingetragen und es klappt wunderbar. Sobald ich auf die IP Connecte wo das Programm läuft wird mir mein Drucker Webinterface angezeigt.

Nun noch eine Frage:
Wie bekomme ich es hin das ich die Session vom IdHTTP an TIdMappedPortTCP "weitereichen" kann? Ich muss eigentlich nur eine Seite vorschalten und dann die Session an den Mapper übergeben.

Vielen Dank im Voraus
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.964 Beiträge
 
Delphi 12 Athens
 
#2

AW: TCP weiterleitung

  Alt 28. Nov 2017, 11:57
Ich stelle mir das so vor, dass du die Client Session in eine DB einträgst und dann eine HTTP-Weiterleitung auf einen anderen Port machst, der per TIdMappedPortTCP zu dem jeweiligen Gerät zeigt. Im OnConnect des TIdMappedPortTCP Objekts prüfst du dann, ob die Session von diesem Client-Rechner aus noch aktiv ist / neu genug ist / wie auch immer. Alle unbekannten Clients bzw. IPs lehnst du ab.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.245 Beiträge
 
Delphi 2007 Architect
 
#3

AW: TCP weiterleitung

  Alt 28. Nov 2017, 12:16
Hi,
das wäre eine Idee wie ich das weitergeleitet bekomme. Ich versuche es gerade so zu machen, das ich eine HTML Seite übergebe wo man User/Pass einträgt und dann OK klickt. Dann kommen die Eingaben ja im IdHTTP per Post an. Dann kann ich die prüfen und entsprechend reagieren.

Was ich rausgefunden habe ist, wenn ich in IdHTTPServer1CommandGet folgendes mache
Delphi-Quellcode:
  IdHTTPServer1.Active:=False;
  IdMappedPortTCP1.Active:=True;
werde ich auch direkt weitergeleitet. Allerdings ist dann Kurz die Weiterleitung "auf". Wenn in dem Moment einer Connected dann kommt er ohne User/Pass auf ein anderes Gerät.

Also denke ich das TIdMappedPortTCP zur Laufzeit erstelle, seine OpenVPN-IP und Port eintrage und es Diesem User "gebe".

Was ich gerne haben möchte wäre die SessionID oder sonstwas was ich dem TIdMappedPortTCP übergeben kann, und der dann z.b. auf Port 81 "übernimmt". Das ganz soll ja Threadfähig sein damit es mehr als ein User benutzen kann zeitgleich nutzen kann.

Ich hoffe ich habe mich verständlich ausgedrückt, wenn nicht einfach nochmal nachfragen.

Trotzdem schon mal vielen Dank für die Hilfe.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.964 Beiträge
 
Delphi 12 Athens
 
#4

AW: TCP weiterleitung

  Alt 28. Nov 2017, 17:30
Ob du dynamisch verschiedene Clients über den gleichen Port an verschiedene Ziele durchleiten kannst, weiß ich nicht. Aber ich bezweifle es ehrlich gesagt.

Du kannst aber auf jeden Fall für jeden Client einen neuen Port aufmachen mit einer eigenen Instanz von TIdMappedPortTCP und dann den Client wie gesagt auf den Port umleiten. Dann verbindet sich jeder Client mit einem anderen Port. Nach einer gewissen Zeit beendest du die Session und machst den Port wieder frei.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.245 Beiträge
 
Delphi 2007 Architect
 
#5

AW: TCP weiterleitung

  Alt 29. Nov 2017, 10:55
Hi,
mit einem Client klappt es. Und zwar habe ich das so gelöst. TIdMappedPortTCP zeigt intern auf einen TIdHTTPServer. Der fragt User und Pass ab. Wenn das stimmt, setze ich MappedHost und MappedPort auf die VPN IP des Raspi und gebe dem Client einen META Refresh raus. Schwubs ist der Client auf dem Raspi.

Nun frage ich mich nur, wie ich das MultiThreadfähig bekomme. Soviel ich weiß kann der TIdHttpServer das irgendwie. Aber ob das der TIdMappedPortTCP kann weiß ich nicht. Habe noch garnix darüber gefunden.

Vielen dank für deine Hilfe, wenn ich nicht weiterkomme mache ich einen neuen Thread auf. Weil hier weicht es langsam vom Topic ab.

Gruß
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 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