Thema: Delphi idHTTPProxy mit Proxy?

Einzelnen Beitrag anzeigen

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