ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
9863
9863
EMPFEHLEN
-
28.07.06 10:38 #1
- Registriert seit
- Sep 2004
- Beiträge
- 171
Hallo Leute,
normalerweise beginne ich so eine Socket-Verbindung, also verbinde mich gleich im Konstruktor der Klasse Socket:
Socket socket = new Socket("domain.com",5963);
Das hat bis jetzt immer funktioniert. Nun möchte ich diese Verbindung über einen Proxy-Server herstellen.
Überall im Internet (z.B. hier: http://java.sun.com/j2se/1.5.0/docs/...t/proxies.html) kann man folgenden Code dafür finden:
Wieso geht dieser Code bei mir nicht? Es kommt immer ein Fehler, dass Proxy.Type.SOCKS nicht erkannt wird.Code :1 2 3 4 5
SocketAddress addr = new InetSocketAddress("proxydomain.com",80); Proxy proxy = new Proxy(Proxy.Type.SOCKS,addr); Socket socket = new Socket(proxy); InetSocketAddress dest = new InetSocketAddress("domain.com",5963); socket.connect(dest);
Hat jeamnd schon erfolgreich eine Socket Verbindung über einen Proxy gemacht? Evtl. auch mit Username und Passwort Übermittlung?
Danke für eure Hilfe!
-
28.07.06 12:13 #2MeinerEiner_80 Tutorials.de Gastzugang
Moin!
Kurze Frage, hast du auch java 1.5? Proxy.Type.SOCKS gibt es nämlich erst seit da
*grüssle*
MeinerEiner
-
28.07.06 13:32 #3
- Registriert seit
- Sep 2004
- Beiträge
- 171
Hallo MeinerEiner,
Ich habe Java 1.4.x, sieht also schlecht aus...
.
Gibt es eine andere Möglichkeit eine Socket-Verbindung über einen Proxy zu machen?
Gruss, Luke
-
28.07.06 14:09 #4MeinerEiner_80 Tutorials.de Gastzugang
Moin!
Probiere mal folgendes:
Code :1 2 3
[FONT=Arial][SIZE=3] System.getProperties().put( "proxySet", "true" ); System.getProperties().put( "proxyHost", "yourProxyMachineName" ); System.getProperties().put( "proxyPort", "yourProxyPort" );[/SIZE][/FONT]
Das funktioniert bei mir, wenn ich eine HttpURLConnection über einen Proxy mache möchte. Ob das auch in der tieferen Socket Schicht funktioniert, bin ich überfragt.. teste es einfach mal aus!
*grüssle*
MeinerEiner
-
28.07.06 15:40 #5
- Registriert seit
- Sep 2004
- Beiträge
- 171
Hallo MeinerEiner,
Danke für deine erneute Antwort!
Mit diesem Trick "funktioniert" es schon eher. Ich kann nun das Programm kompilieren wenn ich vor dem Socketaufbau diese Werte setze...
Jedoch fragt er mich nicht nach Username und Passwort per Standard-Windows Fenster. Gibt es eine Möglichkeit diese mit JAVA zu setzen? Weil der Proxy braucht eine Benutzerauthentifizierung.
Danke für deine Hilfe!
-
28.07.06 15:52 #6MeinerEiner_80 Tutorials.de Gastzugang
Moin!
hmm.. ich glaub das war etwas derart..:
Code :1 2
System.getProperties.put( "http.proxyUser", "yourUsername" ) System.getProperties.put( "http.proxyPassword", "yourPassword" );
*grüssle*
MeinerEiner
-
28.07.06 16:41 #7
- Registriert seit
- Sep 2004
- Beiträge
- 171
Hmm, das bringt irgendwie nicht mehr, wenn ich das unten angebe.
Hier ist mein Code:
(Die IP ist erfunden)Code :1 2 3 4 5 6 7
System.setProperty( "proxySet", "true" ); System.setProperty( "proxyHost", "70.42.124.12" ); System.setProperty( "proxyPort", "80" ); try { System.out.println("Socket start"); socket = new Socket("server.com",4526); System.out.println("Socket up");
Da ich den Proxy besitze kann ich in der Logdatei nachsehen. Wenn ich nun einen Webbrowser öffne und folgenden Link aufrufe: http://70.42.124.12, dann zeigt es mir zwar eine Fehlermeldung an. Jedoch steht dann in dem Logfile vom Proxy eine weitere Zeile, dass jemand "nicht authorisierter" versucht hat, den Proxy zu verwenden.
Mit diesem oben angezeigten Java-Code (erstmal ohne "http.proxyUser" und "http.proxyPassword" zu setzen) wird nicht einmal eine Zeile zum Proxy Log hinzugefügt. Ich kann also mit Java denn proxy gar nicht errecihen, bzw. es kommt eine Timeout-Fehlermeldung und "Socket up" wird nie angezeigt...
-
28.07.06 19:20 #8
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Wenn du einen SOCKS Proxy verwendest musst du auch das socksProxyHost und socksProxyPort (default: 1080) System Property setzen.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
29.07.06 09:32 #9
- Registriert seit
- Sep 2004
- Beiträge
- 171
Also... ich habe glaube ich gar keinen SOCKS Proxy, sondern einen Squid www-proxy (müsste ein http Proxy sein?). Jedoch geht es auch nicht mit "http.proxyHost"...
Gibt es eine Möglichkeit mit Java den Proxy zu testen?
-
16.01.08 23:58 #10
- Registriert seit
- Jan 2008
- Beiträge
- 2
Hi Leute, habe da mal eine Frage an die Expertenrunde...
Ich verwende eine verschlüsselte SSLSocket Verbindung um zwischen einem Client und einem Server zu kommunizieren. Nun soll die Verbindung zusätzlich über einen Proxy laufen. Alle direkte Internetverbindungen sind geschlossen und der einzige Ausgang ist über den Proxy. Den Code den ich für die direkte Verbindung verwende sieht einigermaßen so aus:
Code :1 2 3
SSLSocketFactory sf = getMySSLContext().getSocketFactory(); ss = (SSLSocket) sf.createSocket(dest, destport); ss.startHandshake();
Gibt es da besondere Anforderungen, die der Proxy erfüllen muss, um die SSL Verbindung weiterleiten zu können? Was muss ich wie einstellen, damit der Proxy verwendet wird?
Vielen Dank für Eure Hilfe...
Gruß
SaintOliver
-
17.01.08 18:00 #11
- Registriert seit
- Jan 2008
- Beiträge
- 2
Keiner eine Idee
-
12.03.09 13:19 #12
- Registriert seit
- Oct 2003
- Beiträge
- 117
Nun hat's mich auch hier erwischt.
Ich muss eine bestehende Klasse anpassen, damit diese über einen Proxy geht. Die Klasse benutzt jedoch java.net.Socket und nicht HttpURLConnection.
Hier ein Test-Schnippel:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// der zu kontaktierende Host String host = "soap.schnipschnap.de"; int port = 80; // unser Proxy String proxyHost = "192.168.13.42"; int proxyPort = 8080; // put properties System.setProperty("socksProxyPort", proxyHost); System.setProperty("socksProxyHost", String.valueOf(proxyPort)); // set up proxy Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(proxyHost, proxyPort)); // set up socket socket = new Socket(proxy); // contact host socket.connect(new InetSocketAddress(host, port));
nun bleibt die Appli bei socket.connect() hängen.
Der Proxy (Es ist ein ISA Webproxy für HTTP) funktioniert, denn ich schreibe diesen Beitrag via obigen Proxy.
Proxy.Type.HTTP
habe ich auch schon versucht, doch dann erhalte ich:
java.lang.IllegalArgumentException: Invalid Proxy
es kann doch wirklich nicht so schwer sein?
cheerioh
SiS
BTW: umprogrammieren auf HTTPUrlConnection() is nicht.............
Ähnliche Themen
-
Java Netzwerkverbindung über Proxy
Von Thomas Darimont im Forum JavaAntworten: 15Letzter Beitrag: 01.12.10, 15:02 -
Mehrere Dateien über einen Socket senden
Von ReaX im Forum JavaAntworten: 7Letzter Beitrag: 18.08.08, 11:15 -
VB - FTP Upload über einen Proxy
Von Domian im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 22.04.08, 09:14 -
Proxy / socks
Von pking im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 3Letzter Beitrag: 11.07.06, 03:02 -
Proxy über einen Tunnel umgehen?
Von Sway im Forum NetzwerkeAntworten: 12Letzter Beitrag: 15.04.05, 09:50





Zitieren

Login





