AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idHTTPProxy mit Proxy?
Thema durchsuchen
Ansicht
Themen-Optionen

idHTTPProxy mit Proxy?

Ein Thema von lowF · begonnen am 27. Feb 2009 · letzter Beitrag vom 16. Mär 2009
Antwort Antwort
lowF

Registriert seit: 18. Dez 2008
37 Beiträge
 
#1

idHTTPProxy mit Proxy?

  Alt 27. Feb 2009, 17:00
Hi!

Der Titel klingt vielleicht ein bisschen verwirrend.

Was ich versuche ist Folgendes:

Ich lasse auf meinem Rechner einen HTTPProxy von Indy (10) laufen. Der Sinn soll sein, dass alle Rechner in meinem Netzwerk nur über meinen PC als Proxy ins Internet kommen. So weit erstmal kein Problem.

Jetzt ist nur die Sache, dass ich selber nur über einen Proxy (HTTP) ins Internet komme. Also hat man da ja 2 Proxies hintereinander. (Wie) Kann ich das mit Indys HTTPProxy oder anderen IndyTools hinbekommen?

Bei IdHTTPProxy gibt es keine Properties für Proxy.

MfG
lowF

Edit:
Nur so theoretisch: Würde das auch mit 3 (oder mehr) Proxies gehen?
  Mit Zitat antworten Zitat
lowF

Registriert seit: 18. Dez 2008
37 Beiträge
 
#2

Re: idHTTPProxy mit Proxy?

  Alt 9. Mär 2009, 13:09
Ich push erstmal vorsichtig.

Habe gelesen, dass es Realisierungen mit IdHTTPServer und IdHTTP gibt, zusammen zu einem Proxy geformt. Gibt es dafür Code-Beispiele?
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#3

Re: idHTTPProxy mit Proxy?

  Alt 9. Mär 2009, 16:23
Hi lowF,

Zitat von lowF:
Ich push erstmal vorsichtig.
Und ich antworte mal vorsichtig

Zitat von lowF:
Habe gelesen, dass es Realisierungen mit IdHTTPServer und IdHTTP gibt, zusammen zu einem Proxy geformt. Gibt es dafür Code-Beispiele?
Nein, leider nicht.

Aber was für ein Proxy läuft denn auf Deinem Rechner? Wenn es ein Socks4/5 Proxy ist, könntest Du das Event OnHTTPBeforeCommand des IdHTTPProxyServer nutzen:

Delphi-Quellcode:
procedure TForm1.IdHTTPProxyServer1HTTPBeforeCommand(
  AContext: TIdHTTPProxyServerContext);
var
  SocksInfo: TIdSocksInfo;
begin
  AContext.OutboundClient.IOHandler := TIdIOHandlerStack.Create(AContext.OutboundClient);
  SocksInfo := TIdSocksInfo.Create(AContext.OutboundClient);
  SocksInfo.Host := '';
  SocksInfo.Port := 8080; // der Port des anderen Proxy
  SocksInfo.Authentication := saNoAuthentication;
  SocksInfo.Version := svSocks5; // oder 4 oder 4A
  AContext.OutboundClient.Socket.TransparentProxy := SocksInfo;
end;
Falls Dein Socks-Proxy noch Anmeldedaten braucht, muß das entsprechend hinterlegt werden. Das funktioniert aber nur für Socks-Proxy wie gesagt.

Man könnte sonst auch ein TCP/UDP PortMapper nutzen, um einfach die Daten durchzureichen - aber das ist halt kein echter Proxy.

Prinzipiell ist der IdHTTPProxyServer "nur" ein einfacher Proxy-Server, solche Erweiterungen sind Sache des Programmierers. Kaskadierende Proxies sind auf jeden Fall von Haus aus nicht dabei. Die Proxy Unterstützung in den IdHTTP und IdFTP Clients ist übrigens ein anderer Ansatz, der die (häufige) Benutzung von Proxies bei den Client-Komponenten vereinfacht.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
lowF

Registriert seit: 18. Dez 2008
37 Beiträge
 
#4

Re: idHTTPProxy mit Proxy?

  Alt 15. Mär 2009, 17:23
Danke für die Antwort

Bei meinem Proxy kann ich das Event OnHTTPBeforeCommand benutzen.

Habe mir mal deinen Code angesehen und versucht, einigermaßen die Funktion zu verstehen.

Was genau passiert in der Zeile
AContext.OutboundClient.Socket.TransparentProxy := SocksInfo; Wird hier nur die Zieladresse/Port/usw. von meinem HTTPRequest verändert?

MfG
lowF
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

Re: idHTTPProxy mit Proxy?

  Alt 15. Mär 2009, 17:57
Du könntest die Software Privoxy einsetzen.
Privoxy ist ein Proxyserver, der die Anfragen an einen weiteren Proxyserver weiterleiten kann.
Zusätzlich kann Privoxy Werbeseiten, Popups und andere "Schweinereien" ausfiltern (das ist eigentlich seine Hauptaufgabe).
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

Re: idHTTPProxy mit Proxy?

  Alt 16. Mär 2009, 11:06
Zitat von lowF:
Was genau passiert in der Zeile
AContext.OutboundClient.Socket.TransparentProxy := SocksInfo; Wird hier nur die Zieladresse/Port/usw. von meinem HTTPRequest verändert?
Ja, die SocksInfo enthält die entsprechenden Informationen, die dann durch die o.g. Zuweisung für die ausgehende Anfrage verwendet werden. Dadurch wird alles durch diesen Proxy geleitet. Leider ist dies hierbei nur für Socks-Proxy möglich.

Gruß Assertor
Frederik
  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 18:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz