Bunnychecker
Hey.
Ich bin gerade dabei meinem Programm eine Proxyunterstützung zu geben. Ähnlich wie im WebBrowser (z.B. Firefox) möchte ich meinem Benutzer die Möglichkeit geben eine Proxyadresse angeben zu können, über welches dann die Requests getätigt werden.
Es sollen Socks4, Socks4a, Socks5 und HttpProxies unterstützt werden, weswegen die Möglichkeiten des WebProxy/IWebProxy entfallen und das Ganze eine Ebene tiefer (TCP) angegangen werden muss.
Ich habe die Starksoft Bibliothek eingebunden, die bereits die Authentifizierung und den Aufbau der Verbindung zu einem Server über einen beliebigen Proxy ermöglicht.
Starksoft
Erste Frage diesbezüglich wäre, wenn ich die Erreichbarkeit eines Proxies testen möchte, kann ich das nur darüber erreichen, indem ich zu einem Server verbinde:
Application --> Socks5 --> GoogleServer --> Socks5 --> Application
oder kann man über:
Application <--> Socks5
schon feststellen, dass der obige Ablauf funktionieren wird?
2. Frage:
Mein Benutzer soll nur die Adresse des Proxies angeben und ich möchte die Funktion des Firefox nachempfinden: "Für alle Protokoll diesen Proxy-Server verwenden".
Wie gehe ich das am besten an? Es muss ja dann getestet werden, welches Protokoll der Proxy aufweist. Ich muss also alle Protokolle durchtesten. Welche Tipps und Herangehensweisen könnt ihr mir dafür geben? Wie finde ich also am besten heraus, welches Protokoll vorliegt, wenn ich nur eine ProxyIP zu verfügung habe?
Was ich dazu bisher gefunden habe ist, dass man erst einen HttpRequest an einen SocksProxy senden soll, da dieser dann sofort einen Error liefert, sendet man einen SocksRequest an einen HttpProxy könnte man maximal über einen Timeout erkennen, dass es sich nicht um einen Socksproxy handelt, wobei es schon einer sein kann, der aber evtl. gerade nicht online ist.
Liebe Grüße
Ich bin gerade dabei meinem Programm eine Proxyunterstützung zu geben. Ähnlich wie im WebBrowser (z.B. Firefox) möchte ich meinem Benutzer die Möglichkeit geben eine Proxyadresse angeben zu können, über welches dann die Requests getätigt werden.
Es sollen Socks4, Socks4a, Socks5 und HttpProxies unterstützt werden, weswegen die Möglichkeiten des WebProxy/IWebProxy entfallen und das Ganze eine Ebene tiefer (TCP) angegangen werden muss.
Ich habe die Starksoft Bibliothek eingebunden, die bereits die Authentifizierung und den Aufbau der Verbindung zu einem Server über einen beliebigen Proxy ermöglicht.
Starksoft C#-Code: |
Socks5ProxyClient proxy = new Socks5ProxyClient(proxyIP, proxyPort);
|
Erste Frage diesbezüglich wäre, wenn ich die Erreichbarkeit eines Proxies testen möchte, kann ich das nur darüber erreichen, indem ich zu einem Server verbinde:
Application --> Socks5 --> GoogleServer --> Socks5 --> Application
oder kann man über:
Application <--> Socks5
schon feststellen, dass der obige Ablauf funktionieren wird?
2. Frage:
Mein Benutzer soll nur die Adresse des Proxies angeben und ich möchte die Funktion des Firefox nachempfinden: "Für alle Protokoll diesen Proxy-Server verwenden".
Wie gehe ich das am besten an? Es muss ja dann getestet werden, welches Protokoll der Proxy aufweist. Ich muss also alle Protokolle durchtesten. Welche Tipps und Herangehensweisen könnt ihr mir dafür geben? Wie finde ich also am besten heraus, welches Protokoll vorliegt, wenn ich nur eine ProxyIP zu verfügung habe?
Was ich dazu bisher gefunden habe ist, dass man erst einen HttpRequest an einen SocksProxy senden soll, da dieser dann sofort einen Error liefert, sendet man einen SocksRequest an einen HttpProxy könnte man maximal über einen Timeout erkennen, dass es sich nicht um einen Socksproxy handelt, wobei es schon einer sein kann, der aber evtl. gerade nicht online ist.
Liebe Grüße
