So, da bin ich nun.
Hab ein bisschen rumgespielt und einen Teilerfolg erzielt.
1. Das Skript tut was es soll aber im ersten ELSE-Teil sieht das, was die Box ausspuckt wohl anders aus als erwartet.
Hier der Testcode:
Code:
#!/bin/ash
./curl -s http://192.168.178.1/cgi-bin/webcm -d "getpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=home&var:menu=home&sid=$cgisid&login:command/password=meinpasswort" >test2.txt
Im Anhang die gesamte test2.txt.
Die Telefonnummern werden Angezeigt (habe ich Telefonnummer1 und 2 genannt).
Code:
<input type="hidden" name="login:command/response" value="" id="uiPostResponse">
<input type="hidden" name="box:settings/webui_cookie" value="" disabled>
<input type="hidden" name="var:activtype" value="pppoe" id="uiPostActivType">
<input type="hidden" name="var:tabInetstat" value="0" id="uiPostTab">
<input type="hidden" name="sip:settings/sip0/activated" value="1" id="uiPostActivsip0" disabled>
<input type="hidden" name="sip:settings/sip0/displayname" value="Telefonnummer1" id="uiPostDisplaysip0" disabled>
<input type="hidden" name="sip:settings/sip1/activated" value="1" id="uiPostActivsip1" disabled>
<input type="hidden" name="sip:settings/sip1/displayname" value="Telefonnummer2" id="uiPostDisplaysip1"
Direkt darüber, sollte die IP angezeigt werden - da ist aber nichts.
Mich macht auch stutzig, dass ich, egal was ich als Passwort eingebe, immer die gleiche Ausgabe erhalte!
Ich habe das Passwort zu Testzwecken im Klartext in die Codezeile eingegeben. Auch ohne Passwort kommt dieselbe Ausgabe!
Vielleicht kann jemand das gegenprüfen?
2. Mit der zweiten Abfrage über dyndns klappt es dann, wenn ich den ELSE-Teil rausnehme.
Offenbar ist die Lösung mit dem ODER (||) nicht ganz sauber. Hier müsste man eine Prüfung einbauen,
ob es sich auch wirklich um eine IP handelt die aus dem ELSE-Teil ermittelt wird.
Was könnte ich sonst noch machen, um den Scriptteil mit der Box-Abfrage zu korrigieren?
-Liegt es vielleicht an der fehlerhaften Passwort-Abfrage???
-Wird mir überhaupt die gesamte GUI über die Abfrage geliefert oder komme ich gar nicht erst rein wegen dem Passwort?
Schönen Gruß & Danke für die Tipps bisher!
Fireball
EDIT:
Und weil's so schön ist, ein Test mal ohne eingestelltem Passwort auf der Box.
Das Ergebnis ist dasselbe!
An der Stelle wo ich die IP erwartet hätte wird var:tabInetstat angezogen.
Der Browser würde javascript:gotoinetstat(2); aufrufen.
Kann mir ein php, java Guru sagen, wie ich das in die curl-Abfrage reinbringe???