Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Java Problem: URLConnection
Dirk Offline
Software Archäologe

Beiträge: 14.737
Registriert seit: Jul 2008
Beitrag #1
Java Problem: URLConnection
Ich versuche gerade nen sinnloses kleines programm zu schreiben, das sich auf meinen router einloggt, reconnected und wieder ausloggt, hab dafür auch nen vbs script gefunden, das funktioniert:
Code:
On Error Resume Next
ip = "192.168.2.1"
pwd = "xxx"
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("POST", "http://" & ip & "/start.login", False)
objHTTP.Send("P1=" & pwd)
Call objHTTP.Open("GET", "http://" & ip & "/pppctl.cmd?action=0", False)
objHTTP.Send
WScript.Pause 5
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("POST", "http://" & ip & "/start.login", False)
objHTTP.Send("P1=" & pwd)
Call objHTTP.Open("GET", "http://" & ip & "/pppctl.cmd?action=1", False)
objHTTP.Send
Call objHTTP.Open("GET", "http://" & ip & "/logout.cmd", False)
objHTTP.Send

aber in java kackt das irgendwie nur ab. scheint auch keine so schön einfache befehle zu geben.

Code:
[size=small]
[align=left]URL url = [/size][b][size=small][color=#7f0055][size=small][color=#7f0055]new[/b][/color][/size][/color][/size][size=small] URL([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"http://"[/color][/size][/color][/size][size=small] + ip+ [/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"/start.login"[/color][/size][/color][/size][size=small]);
URLConnection conn = url.openConnection();
conn.setDoOutput([/size][b][size=small][color=#7f0055][size=small][color=#7f0055]true[/b][/color][/size][/color][/size][size=small]);
conn.setRequestProperty([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"connection"[/color][/size][/color][/size][size=small],[/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"Keep-Alive"[/color][/size][/color][/size][size=small]);
OutputStreamWriter wr = [/size][b][size=small][color=#7f0055][size=small][color=#7f0055]new[/b][/color][/size][/color][/size][size=small] OutputStreamWriter(conn.getOutputStream());[/align]
wr.write([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"P1="[/color][/size][/color][/size][size=small]+passwort);
[size=small]wr.flush();
[/size][/size]

damit krieg ich schon mal nen POST zugriff auf den router, der loggt auch eine erfolgreiche anmeldung. aber wie gehts jetzt weiter??

Code:
[size=small]
[align=left]url2 = [/size][b][size=small][color=#7f0055][size=small][color=#7f0055]new[/b][/color][/size][/color][/size][size=small] URL([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"http://"[/color][/size][/color][/size][size=small] + ip+ [/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"/pppctl.cmd?action=0"[/color][/size][/color][/size][size=small]);[/align]
conn2 = url2.openConnection();
[/size]

so soll angeblich nen GET befehl funktionieren, es passiert aber nichts. hab schon alles mögliche probiert, total nervig. gandro, weißt du rat?

10.08.2010 11:57
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
niwax Offline
Hardcore-Coder

Beiträge: 3.829
Registriert seit: Dec 2009
Beitrag #2
Java Problem: URLConnection
Greift deine Variable auf Port 80 zu? Wenn ja liegt es wahrscheinlich an falschen Headern, die sagen, dass nur POST-Variablen übertragen wurden.


10.08.2010 12:10
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Dirk Offline
Software Archäologe

Beiträge: 14.737
Registriert seit: Jul 2008
Beitrag #3
Java Problem: URLConnection
das heißt? ich glaube ist port 80, kriege nämlich die seite zurück (vermutlich vom login)

10.08.2010 12:12
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
niwax Offline
Hardcore-Coder

Beiträge: 3.829
Registriert seit: Dec 2009
Beitrag #4
Java Problem: URLConnection
Dirk schrieb:  das heißt?
In dem VB-Script wird ja eine XMLHTTP-Verbindugn benutzt. Das bedeutet, dass zwischen dem Programm und dem Socket der Verbindung noch ein HTTP-Protokoll liegt. In HTTP muss geregelt werden, ob Variablen per POST oder GET übergeben werden, da bei POST ein zusätzlicher Header mitgesendet werden muss. Es kann sein, dass Java beim URL-Objekt nur Post implementiert bzw. sich einstellen lässt, ob der zusätzliche POST-Header mitgesendet wird. Wenn der nicht gesendet wird wird die Abfrage als GET interpretiert.


10.08.2010 12:16
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Dirk Offline
Software Archäologe

Beiträge: 14.737
Registriert seit: Jul 2008
Beitrag #5
Java Problem: URLConnection
Ich krieg ne macke, ich habs jetzt wirklich mal basic probiert:

Code:
[size=small]
[align=left]URL [u]url5[/u] = [/size][b][size=small][color=#7f0055][size=small][color=#7f0055]new[/b][/color][/size][/color][/size][size=small] URL([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"http://192.168.2.1/"[/color][/size][/color][/size][size=small]);
Socket socket = [/size][b][size=small][color=#7f0055][size=small][color=#7f0055]new[/b][/color][/size][/color][/size][size=small] Socket(ip,80);
PrintWriter output = [/size][b][size=small][color=#7f0055][size=small][color=#7f0055]new[/b][/color][/size][/color][/size][size=small] PrintWriter(socket.getOutputStream());
output.println([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"POST /start.login HTTP/1.1"[/color][/size][/color][/size][size=small] );
output.println([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"Host: "[/color][/size][/color][/size][size=small]+ip);
output.println([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"Content-Type: application/x-www-form-urlencoded"[/color][/size][/color][/size][size=small]);
output.println([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"Content-Length: 15"[/color][/size][/color][/size][size=small]);
output.println([/size][size=small][color=#2a00ff][size=small][color=#2a00ff]"P1=xxx"[/color][/size][/color][/size][size=small] );
output.flush();
InputStreamReader input = [/size][b][size=small][color=#7f0055][size=small][color=#7f0055]new[/b][/color][/size][/color][/size][size=small] InputStreamReader(socket.getInputStream());[/align]
System.[/size][i][size=small][color=#0000c0][size=small][color=#0000c0]out[/i][/color][/size][/color][/size][size=small].println(input.toString());[/size]
[size=small][size=small][align=left]socket.close();[/align]
[/size][/size]

ergebnis: Der router reagiert garnicht mehr auf port 80, totale blokade...

10.08.2010 14:43
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
niwax Offline
Hardcore-Coder

Beiträge: 3.829
Registriert seit: Dec 2009
Beitrag #6
Java Problem: URLConnection
Mögliche Lösungen:
1. Am Ende zwei Leerzeilen einfügen um zu signaliesieren, dass der Header fertig gesendet ist
2. Vor den Variablen (also P1=xxx) zwei Leerzeilen einfügen, um den Variablenblock zu trennen
3. Firewallausnahme hinzufügen

Was für ein Basic ist das? Sieht immernoch mehr nach Java aus.
Ich verbinde das immer so:

Der Code ist btw ein Teil aus meinem Remotedesktop, der auf Port 739 läuft, aber für 80 sollte es auch gehen


10.08.2010 15:27
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
winfreak Offline
アンゲシュテルタ

Beiträge: 10.499
Registriert seit: Aug 2008
Beitrag #7
Java Problem: URLConnection
niwax schrieb:  [...]Was für ein Basic...?[...]
Dürfte sich um VB.NET handeln.

[Bild: winfreak_32972_14.png]
10.08.2010 15:50
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
niwax Offline
Hardcore-Coder

Beiträge: 3.829
Registriert seit: Dec 2009
Beitrag #8
Java Problem: URLConnection
winfreak schrieb:  
niwax schrieb:  [...]Was für ein Basic...?[...]
Dürfte sich um VB.NET handeln.
Ich rede von diesem Post: http://www.winhistory-forum.net/161847-post5.html
Das ist doch kein VB.Net. Das was ich gepostet hab ist VB.Net


10.08.2010 15:58
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Dirk Offline
Software Archäologe

Beiträge: 14.737
Registriert seit: Jul 2008
Beitrag #9
Java Problem: URLConnection
Das ist visual basic SCRIPT, kannte ich auch nicht, aber das zeug braucht man nur in ne textdatei fügen, endung vbs, und unter windows doppelklicken. fertig. der interpreter ist wohl mindestens seit 2000 datei, liegt im %windir%/system32/cscript.exe

10.08.2010 18:21
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
winfreak Offline
アンゲシュテルタ

Beiträge: 10.499
Registriert seit: Aug 2008
Beitrag #10
Java Problem: URLConnection
Dirk schrieb:  Das ist visual basic SCRIPT, kannte ich auch nicht, aber das zeug braucht man nur in ne textdatei fügen, endung vbs, und unter windows doppelklicken. fertig. der interpreter ist wohl mindestens seit 2000 datei, liegt im %windir%/system32/cscript.exe

Darauf baute doch ILoveYou auf?

[Bild: winfreak_32972_14.png]
10.08.2010 18:23
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste