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