Verfasst: 08.01.2005, 11:41
Auf keinen Fall würde ich etwas eigenes in den Router einspielen. Für meinen Linksys-Router gibt es auch alternative Linux-Betriebssysteme aber ich würde es nicht einspielen, wer weiß was dann passiert.
https://board.superscripte.de/
Hm, das müßte man doch \"irgendwie\" auslesen können. Man kann sich mit ...es sei, denn man erfährt von D-Link, wie das CGI webcm funktioniert
Jein. Man kann im Router den Timeout einstellen (\"Werkzeuge\" - \"Benutzermanagement\"). Der Wert steht normalerweise auf 30 Min. Ich habe ihn mal hochgesetzt auf 1440 Min (=24 Stunden).Leider wird man nach einem Timeout wieder ausgeloggt, so dass es nicht genügt, sich einmal mit dem autostart von Windows anzumelden.
Das geht wohl so nicht: Zuerst braucht man auf dem eigenen Rechner einen Webserver (z.B. Apache oder Windows IIS). Und dann ergibt sich noch das Problem, daß ich die selbst erstellte HTML Datei zwar aufrufen kann, diese müßte dann aber per automatischem \"reload\" über das CGI Programm \"webcm\" geleitet werden, damit es mit Daten gefüllt wird. Das ist nicht das Problem, sondern RouterControl würde nur die erste HTML Datei auf Daten untersuchen - und das ist die selbst HTML erstellte Datei - also noch ohne Daten.Wie sieht es eigentlich aus, wenn man das Login auf den Rechner verlegt und die Abfrage der Statusseiten ebenfalls über HTML Seiten auf dem Rechner macht ? So dass man die IP Adresse des Rechners vorgibt.
<html><head></head>
<body>
<form>
<input>
<input>
<input>
</form></body></html>
<html><head></head>
<body>
<form>
<input>
<input>
<input>
</form></body></html>
Ansonsten funktioniert die Status-Anzeige in RouterControl einwandfrei (z.B. IP-Adresse, Übertragene/Empfangene Bytes) - solange ich eingeloggt bin ...<html><head></head>
<body>
<form>
<input>
<input>
<input>
</form></body></html>
Na, da siehste mal, daß mir da doch ein wenig das Verständnis fehlt und deine Aussage ....Prinzipiell nutzt dir das aber nichts, da du JavaScript mit RouterControl nicht verwenden kannst. RouterControl kann zwar HTTP-Aufrufe (GET und POST) aber kein JavaScript. JavaScript können nur die Browser.
... etwas voreilig war.So wie du es aufgeschrieben hast, sieht es logisch und richtig aus, du hast Ahnung von der Sache.
Hm, kann es sein, daß das der eigentliche Knackpunkt ist ? Ist vielleicht auch in der Zeile ...document.Meinformular.login:command/username.value=\"admin\"; geht nicht, da \"login:command/username\" kein gültiger Variablenname ist.
Du bist schon angemeldet das ist der Unterschied. Wahrscheinlich merkt sich der Router deine IP-Adresse und lässt dich zugreifen, bist du halt Logout/Abmelden anklickst.Hm, hier verstehe ich dich nicht ... Was hat das mit GET und POST zu tun ?
Das folgende Login funktioniert im Web-Browser nicht:
http://<Router>/cgi-bin/webcm?getpage=../html/home_gm.htm&login:command/username=admin&login:command/password=passwort
Aber das funktioniert im Web-Browser (Aufruf der Status-Seite):
http://<Router>/cgi-bin/webcm? getpage=../html/status_gm/connstatus.htm&var:language=gm
Wo ist da der große Unterschied ?
Wenn du weißt, das Fehler enthalten sind und \"man das so nicht machen kann\" -OK dein JavaScript enthält Fehler, so kann man das in JavaScript nicht machen
Original von CCS:
http://<Router>/cgi-bin/webcm?getpage=../html/home_gm.htm&login:command/username=admin&login:command/password=passwort
... funktioniert der Login aber auch nicht.
Hm, hier verstehe ich dich nicht ... Was hat das mit GET und POST zu tun ?Original von Mirko:
Ja weil es ein POST und kein GET wohl sein muss. Nur ein GET kann man machen, wenn man die Url in der Adressleiste des Browser eingibt. Ein POST kann nur der Browser selbst oder eine Anwendung machen.
Wenn du weißt, das Fehler enthalten sind und \"man das so nicht machen kann\" -OK dein JavaScript enthält Fehler, so kann man das in JavaScript nicht machen
Ja weil es ein POST und kein GET wohl sein muss. Nur ein GET kann man machen, wenn man die Url in der Adressleiste des Browser eingibt. Ein POST kann nur der Browser selbst oder eine Anwendung machen.Ich habe jetzt noch folgendes gemacht: Ich habe mir die Login-Seite des Routers auf meinen PC kopiert. Dann habe ich die \"Variablen\" IP-Adresse, Username und Paßwort fest in diese HTML-Seite eingebaut. Anschließend habe ich die HTML-Seite Stück für Stück reduziert auf das allernotwendigste - bis halt das Login noch soeben funktionierte. Dabei ist folgende HTML-Seite herausgekommen:
<html>
<head>
</head>
<body>
<form>
<input>
<input>
<input>
</form>
<a>Login</a>
</body>
</html>
Die Variablen-Namen und -Werte darf ich nicht ändern. Wohl aber die Reihenfolge. Wenn ich mir daraus nun das folgende herleite ...
http://192.168.1.1/cgi-bin/webcm?getpag ... d=passwort
... funktioniert der Login aber auch nicht.
Verstehe ich nicht. Das was du oben gemacht hast, also in das HTML-Formular selbst die Werte für Benutzername/Passwort zu schreiben ist genau die Umsetzung dieses JavaScript-Codes. OK dein JavaScript enthält Fehler, so kann man das in JavaScript nicht machenJetzt suche ich noch einen JavaScript-Experten, der mir die drei Variablen und die \"Post\"-Methode in einen einzigen JavaScript-Befehl bastelt - soll angeblich gehen. In etwa so:
JavaScript:
document.Meinformular.action.value=\"http://192.168.1.1/cgi-bin/webcm\";
document.Meinformular.methode.value=\"Post\";
document.Meinformular.login:command/username.value=\"admin\";
document.Meinformular.login:command/password.value=\"passwort\";
document.Meinformular.submit()
Nur halt alles in einer Zeile ...
OK - kann ich also vergessen.Also eine Angabe wie
<POST>input type=submit name=\"disconnect\" value=\"Disconnect\"
funktioniert niemals.
Die Variablen-Namen und -Werte darf ich nicht ändern. Wohl aber die Reihenfolge. Wenn ich mir daraus nun das folgende herleite ...<html>
<head>
</head>
<body>
<form>
<input>
<input>
<input>
</form>
<a>Login</a>
</body>
</html>
... funktioniert der Login aber auch nicht.
Nur halt alles in einer Zeile ...JavaScript:
document.Meinformular.action.value=\"http://192.168.1.1/cgi-bin/webcm\";
document.Meinformular.methode.value=\"Post\";
document.Meinformular.login:command/username.value=\"admin\";
document.Meinformular.login:command/password.value=\"passwort\";
document.Meinformular.submit()
Hier wird überhaupt keine Seite aufgerufen (und die Parameter sind auch nicht durch \"?\" und \"&\" abgetrennt).D-Link DI624 (FW1.25)
<POST>input type=submit name=\"disconnect\" value=\"Disconnect\"
Mentor Broadband Router Rev A1-01 V2.00.0028
<td><input></td>
Mentor MR4
<td><input></td>
Oder:http://<Router>/input type=submit name=\"disconnect\" value=\"Disconnect\"
Wie funktioniert das bei denen ? Vielleicht kann ich ja eine ähnliche Methode bei meinem Problem anwenden.http://<Router><td><input></td>
Das folgende zusammenbasteln:<form>
<input>
<input>
<input>
<input>
<input>
<input>
</form>
onClick=\"DoLogin()\"
function DoLogin()
{
document.formLogin.elements[2].value=document.usrInput.username.value;
document.formLogin.elements[3].value=document.usrInput.password.value;
document.formLogin.submit();
}
Nur: Wohin sende ich das ? An welche Seite übergebe ich das ? Ich könnte das aninput type=\"hidden\" name=\"getpage\" value=\"../html/home_gm.htm\"
input type=\"hidden\" name=\"errorpage\" value=\"../html/index.html\"
input type=\"hidden\" name=\"login:command/username\" value=\"admin\"
input type=\"hidden\" name=\"login:command/password\" value=\"Mein Passwort\"
input type=\"hidden\" name=\"var:errormsg\" value=\"Error\"
input type=\"hidden\" name=\"var:language\" value=\"gm\"
onClick=\"DoLogin();\"
(oder: onClick=\"submit();\"
Ja, genau DAS habe ich schon probiert (inklusive IP-Eingabe und Username und Password) - funktioniert aber aus unerfindlichen Gründen nicht. Wobei ich auch die andere Variante mit getpage=../html/home_gm.htm probiert habe, die mir richtiger erscheint. Weil: login_gm.html ist die deutsche (gm) Seite, in die man die Login-Daten eingibt. Und diese Seite versendet die Daten an home_gm.htmDas entspricht genau den Daten, die du im Editor eingeben musst. Also
http://<IP>/cgi-bin/webcm?getpage=../html/login_gm.html&errorpage=../html/index.html&login:command/username=%USERNAME%&login:command/password=%PASSWORD%&var:errormsg=Error&var:language=gm
%USERNAME% und %PASSWORD% durch die Daten für den Aufruf des Webinterfaces ersetzen.
Ja.Benutzername und Passwort für das Webinterface hast du aber in der RouterControl-Konfiguration korrekt eingegeben,
Ja.genauso nach Änderung der Routers.dat RouterControl beendet und neu gestartet? Nicht das es an sowas simplen hängt.
Ich habe jetzt noch mal eine entsprechende Anfrage in die zwei D-Link-Foren geschrieben ( http://forum.dlink.de/forum.asp?FORUM_ID=38 und http://www.dl-router.de/forum/forum23.html ) und in die News-Group news:de.comm.technik.dsl und an den Support von D-Link. Mal sehen, ob da jemand eine Antwort weiß.So wie du es aufgeschrieben hast, sieht es logisch und richtig aus, du hast Ahnung von der Sache.Leider fällt mir nichts mehr ein. :boese: Das sieht alles total einfach aus und sollte genauso funktionieren.