7050 Zugangsdaten automatisch ändern

Nogo

Neuer User
Mitglied seit
16 Sep 2005
Beiträge
16
Punkte für Reaktionen
0
Punkte
1
Ausgangspunkt:

da ich ein stark schwankendes Übertragungsvolumen habe, hatte ich mir bei dem Draytek Wlan Router 2500We mit Hilfe des ATC Telnet-Clients zwei Makros geschrieben, mit denen man mit einem Klick den Provider ändern konnte. (das habe ich gelegentlich auch beim Zocken genutzt, wenn ein Provider zeitweilig einen schlechten Ping geliefert hat, als Tipp nebenbei)

Beipielmakro
Code:
adsl ppp 0 32 1 1 1 0 1 username/avg30xxx passwort


Ziel:

das selbe mit der Fritz!Box 7050. Telnet Zugang hab ich, finde aber keine übersichtliche Liste (mit Erklärungen) über die möglichen Befehle.

Traumziel wäre ein Makro wie in dem Beispiel oben.

Aber auch schon Hinweise, wo man nützliche Erläuterungen zu wichtigen Telnetbefehlen der 7050 findet, wäre schön.

Auch ein kleiner Einführungskurs "Linux in 7050 für Anfänger (in Linux und 7050)" wäre nett.


Voraussetzungen:

ja, ich habe die Suche bemüht, auch gooooogle redet immer nur von Busybox und ähnlichen Dingen, die ich leider nicht verstehe...
Nein, leider keine Kenntnisse in Linux, bin aber bereit einige Nüsse zu knacken.
Programmiere ein wenig in Delphi.


Meine bisherigen Ideen:

Der Provider wird wohl in der ar7.cfg abgelegt, der könnte dann mit einigen nvi-Linux-Zauberbefehlen geändert werden???
Klingt aber nach einem 50 Zeilen- Telnet- Dialog.

Auch Änderung über Webbefehle wäre denkbar, ich weiß aber nicht wie die Syntax zum Aufruf der Zugangsdatenseite lautet, geschweige denn wie man die ermittelt (In der Adresszeile des Browsers steht sie nicht...)
Dann könnte man die Umstellung über ein paar Links machen. Hat aber den entscheidenden Nachteil, daß man bei jedem Firmwareupdate mit neuer Arbeit rechnen muß.


Auch für kleine Hinweise bin dankbar ich erwarte keine fertigen Lösungen.



p.s.: Für die ganz Harten:

Ein Script in der Box das gelegentlich den internen Volumenzähler abfragt und die Änderungen in der ar7.cfg automatisch einträgt und zum Monatswechsel wieder zum Basisprovider zurückkehrt...
 
das ändern sollte mittels einem skript wie dem hier
http://ip-phone-forum.de/forum/viewtopic.php?t=28243
funktionieren.
Dabei sind die Befehle
connection0:pppoe:settings/username
connection0:pppoe:settings/password
connection0:pppoe:settings/idle

usw von Bedeutung, zu finden im Quelltext der Zugangsdaten des Webinterface...
 
Auch wenn das Thema schon etwas älter ist ...

Ich hatte mich erst gefreut, dieses ergoogelt zu haben, weil ich genau sowas gesucht hatte (für 7170)
... dann aber "schade, gar keine fertige Lösung drin ..." :(

... also blieb nur selber machen.

Damits eventuellen "Google-Nachfolgern" ;-) besser geht,
hier erstmal meine erste bisherige Lösung, die allerdings ein modernes wget voraussetzt, gibts aber hier im Forum irgendwo ...

(Speichern auf der Box z.B. als chg_dsl, dann ändert "sh chg_dsl a" die Internet-Zugangsdaten auf die unter a) eingetragenen
und "sh chg_dsl b" auf die unter b) ... )

Code:
#!/bin/sh

WGET="[COLOR=Red]/var/tmp/stick/wget/wget[/COLOR]"
FRITZPASS="[COLOR=Red]secret[/COLOR]"
FRITZ="[COLOR=Red]127.0.0.1[/COLOR]"

case $1 in
        a)
                DUSER="[COLOR=Red]xxxN/blafasel%25bluppt[/COLOR]"
                DPASS="[COLOR=Red]secret1[/COLOR]"
        ;;
        b)
                DUSER="[COLOR=Red]xxxyyyy/123456%25provider[/COLOR]"
                DPASS="[COLOR=Red]secret2[/COLOR]"
        ;;
esac

if [ -n "$DUSER" ]; then
   $WGET --post-data "id=uiPostForm&name=uiPostForm&login:command/password=$FRITZPASS" http://$FRITZ/cgi-bin/webcm -O /dev/null -q
   $WGET --post-data "connection0:pppoe:settings/username=$DUSER&connection0:pppoe:settings/password=$DPASS" http://$FRITZ/cgi-bin/webcm -O /dev/null -q
fi
Angepasst werden müssen WGET, FRITZPASS und DUSER und DPASS in Zweig a und b und ggf. FRITZ.

EDIT (Wichtig):
Das Problem war das %-Zeichen in meinem Usernamen (DSL-Zug.)
Das habe ich über http://urlencode.de/ "codiert" in "%25", also steht 123456%25provider für 123456%provider

 
Zuletzt bearbeitet:
Lösung ohne wget

Hier noch die Version, die ohne wget auskommt:
Code:
#!/bin/sh

flogin() {
        FRITZPASS="[COLOR=Red]secret[/COLOR]"
        export REQUEST_METHOD="POST"
        export REMOTE_ADDR="127.0.0.1"
        export CONTENT_TYPE="application/x-www-form-urlencoded"
        POST_DATA="login:command/password=$FRITZPASS"
        export CONTENT_LENGTH=${#POST_DATA}
        echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null
}

case $1 in
        a)
                DUSER="[COLOR=Red]xxxN/blafasel%25bluppt[/COLOR]"
                DPASS="[COLOR=Red]secret1[/COLOR]"
        ;;
        b)
                DUSER="[COLOR=Red]xxxyyyy/123456%25provider[/COLOR]"
                DPASS="[COLOR=Red]secret2[/COLOR]"
        ;;
esac
if [ -n "$DUSER" ]; then
        flogin
        POST_DATA="connection0:pppoe:settings/username=$DUSER&connection0:pppoe:settings/password=$DPASS"
        export CONTENT_LENGTH=${#POST_DATA}
        echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null
fi
 
Zuletzt bearbeitet:
Könntet Ihr bitte allen nicht so Linux bewanderten Nutzern mitteilen, wie und wo genau man die Skripte installieren muß?

Meine 7050 ist "geöffnet", aber eine Schritt für Schritt Anleitung würde mir trotzdem sehr helfen.

Vielen Dank schonmal!
 
Was willst du denn genau erreichen?
Welche FW hast du ? (Signaturen können hilfreich sein :cool:)

Das Script muss entweder auf einem ext. Datenträger gespeichert werden, wenn du eine entsprechende FBF hast,
oder über die debug.cfg erzeugt oder von extern mit wget geholt werden.
Für zeitgesteuertes Aufrufen ist erstmal cron/crond nötig.
 
Ich habe eine fritz!box fon wlan 7050, die ich seinerzeit "geöffnet" habe, um jfritz ausführen zu können. Die Firmware ist die Version 14.04.26.

DSL Anschlüsse habe ich von T-Com und Arcor.

Idealerweise müßte ich also "nur" die Stecker der TAE tauschen und im Menü der Box den jeweiligen Anbieter auswählen.

Die Frage ist nur, wie ich das auf die Box bringe - und vor allem so, dass ich nicht Gefahr laufe, dass es alles zerschiesst.
 
Wie machst du es denn momentan?
Ich befüchte, dass nur das (automat.) Ändern der Zugangsdaten dafür nicht reichen wird.
 
Im Moment ersetze ich manuell die alten Zugangsdaten mit den neuen.
 
Ich dachte, Arcor und T ginge nicht über eine Leitung, aber ok ...
(Weshalb hast du das eigentlich, einer reicht doch, oder nicht?)
Du änderst also nur Zugangsdaten, aber nichts an der Verkabelung, oder wie?
---
Hier dann nochmal ausführlich:
Also zuerst brauchst du das Script mit obigem Inhalt und deinen Daten auf der Box (also mit deinen Daten anpassen!)
Dies kannst du zum einen erreichen, indem du mit "nvi /var/flash/debug.cfg" die debug.cfg so änderst, dass darüber das Script erzeugt wird, z.B. so:

cat <<\EOP > /var/tmp/dsltoggle
[hier jetzt den Inhalt des Scriptes rein]
EOP
chmod a+x /var/tmp/dsltoggle

Das kannst du statt mit nvi auch über ein Pseudoimage erreichen.
Oder wenn du webspace o.ä. hast, leg das Script dort ab (mit Unix-Zeilenumbrüchen) und hol es beim Starten der Box mit wget, z.B.:
cd /var/tmp
wget http://www.deinedomain.de/dsltoggle
chmod a+x /var/tmp/dsltoggle
(also dann diese Zeilen in debug.cfg hinzufügen)

(dann Fritz Box neu starten, um zu sehen, ob die Änderungen an der debug.cfg greifen)

Dann solltest du zumindest schon mal so die Zugangsdaten "automat." ändern können:
telnet fritz.box
cd /var/tmp
./dsltoggle a (oder ./dsltoggle b)

Das wäre der 1. Schritt, wenn das klappt, kannst du dich um crond kümmern oder du änderst das Script entsprechend, dass es z.B. nach Ändern der Zug-Daten 1 Tag "schläft" und dann auf die anderen Zugangsdaten umstellt (also immer läuft). Wie/wann sollen denn die Daten bei dir geändert werden? Mit crond ist es natürlich komfortabler. Für crond brauchst du eine busybox, die crond u. crontab enthält (z.B. auch irgendwoher mit wget über die debug.cfg holen und in /var/tmp ablegen.)
Dann kannst du so einen crontab-Eintrag erstellen:
cd /var/tmp
./busybox crontab -e
Dann z.B. folgendes eintragen:
40 04 * * 1-5 /var/tmp/dsltoggle a
12 06 * * 1-5 /var/tmp/dsltoggle b
... würde bedeuten, dass werktags um 4:40 morgens die Daten auf Inetzugang A und um 06:12 auf B umgestellt werden.
Damit das klappt, muss crond laufen (z.B. über debug.cfg gestartet werden).

Es ist hilfreich, wenn du den vi etwas bedienen kannst. Wenn du ne busybox mit cron benötigst, kannste per PN nochmal fragen,
bezweifle aber, dass meine bei dir läuft (wg. Ulibc-Problem?)... (oder im Forum suchen)

EDIT:
Vielleicht gibts hier ne busybox mit crond/crontab ?
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.