.titleBar { margin-bottom: 5px!important; }

Skript zum umschalten des Internetmodi der Box

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von 3dfxatwork, 24 Okt. 2006.

  1. 3dfxatwork

    3dfxatwork Neuer User

    Registriert seit:
    22 Juli 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Halle
    #1 3dfxatwork, 24 Okt. 2006
    Zuletzt bearbeitet: 24 Okt. 2006
    Hallo

    ich habe einen Router (Software mit PC) na jedenfalls mache ich den nachts immer aus, da der mir zu laut ist, und wollte jetzt nen skript programmieren, dass wenn der rechner aus is die box sich einwählt.
    Die Box hängt mit dem Router und dsl Modem an einem Hub an lan A.
    Es ist eingestellt bei Anschluss "Internetzugang über LAN A" im Menu Internet und dann Zugangsdaten. Bei Betriebsmodi ist " Internetverbindung selbst aufbauen (NAT-Router mit PPPoE oder IP)" eingestellt. Unter Zugangsdaten ist eingestellt "Zugangsdaten werden nicht benötigt (IP)" wenn der Router an ist, d.h. es geht kein Traffic über die Box, diese einstellung habe ich nur gewählt, dass sich die box nicht immer versucht einzuwählen. Falls der Router nicht an sein sollte soll dort "Zugangsdaten werden benötigt (PPPoE)" ausgewählt werden.

    So das war erstmal die Beschreibung meines Vorhabens, nun zu dem Code, da ich mit der Programmierung nicht so firm bin.
    Es gibt dabei 3 Probleme die ich habe:
    1. Status des Rechners überprüfen, möglich mit Ping? Edit: ja
    2. Überprüfen was gerade eingestellt ist, damit die der Befehl zum Ändern nur ausgeführt wird wenn etwas zu ändern ist.
    3. "Zugangsdaten" ändern.

    Ich hatte hier im Forum schon mal eine Nachtschaltung für VOIP gefunden, diese hatte ich schon mal abgeändert, auf eine Überprüfung des VOIP status, dies könnte man dazu wieder adaptieren.

    1: Dies werde ich gleich mal probieren ob ich dies hinbekomme.
    Edit: Hier eine Möglichkeit, nich die schönste aber funktioniert
    Code:
    ping -c 1 -q 168.192.0.10 > aa.txt
    head -n 4 aa.txt > bb.txt
    tail -n 1 bb.txt > aa.txt
    
    read zeile < aa.txt
    rm aa.txt
    rm bb.txt
    echo $zeile
    
    case "$zeile" in
    "1 packets transmitted, 1 packets received, 0% packet loss")
    echo "a";
    ;;
    "1 packets transmitted, 0 packets received, 100% packet loss")
    echo "b";
    ;;
    esac
    2: Code vom Auslesen der Webseite mit dem VOIP Status
    Code:
    ParseWebsite() {
    export REQUEST_METHOD="GET"
    export REMOTE_ADDR="127.0.0.1"
    export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=home&var:pagename=home"
    cd /usr/www/html/cgi-bin
    ./webcm |
    sed -n 's/^.*sip:status.sip[0-9].connect.*value="\([0-9]\).*/\1/p' 
    }
    Wenn ich richtig bin müsste man nut getpage verändern und die sed zeile. Die neue Zeile mit getpage müsste dann so aussehen:
    Code:
    export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=internet&var:pagename=pppoe&var:activtype=pppoe"
    
    Leider weis ich nicht wie ich jetzt wie ich den wert auslesen kann ob "Zugangsdaten werden benötigt (PPPoE)" angeklickt ist oder nicht. Habe gerade mal in den Quellcode der Seite geschaut, da blicke ich irgendwie nich so schnell durch.

    Edit2: Hier hab ich mal noch am ende des Quelltextes dies gefunde, vielleich ich da eins das gesuchte von ?
    Code:
    <input type="hidden" name="connection0:settings/type" value="pppoe" id="uiPostType">
    <input type="hidden" name="connection0:pppoe:settings/idle" value="0" id="uiPostPppIdleTimeout">
    <input type="hidden" name="connection0:pppoe:settings/mode" value="lcp" id="uiPostPppMode">
    <input type="hidden" name="sar:settings/encapsulation" value="dslencap_ether" id="uiPostEncaps" disabled>
    <input type="hidden" name="sar:settings/autodetect" value="1" id="uiPostAutodetect" disabled>
    <input type="hidden" name="sar:settings/dslencap_ether/use_dhcp" value="0" id="uiPostSarDhcp" disabled>
    <input type="hidden" name="sar:settings/dslencap_ether/ipaddr" value="169.254.1.2" id="uiPostSarAddr" disabled>
    <input type="hidden" name="sar:settings/dslencap_ether/netmask" value="255.255.0.0" id="uiPostSarMask" disabled>
    <input type="hidden" name="sar:settings/dslencap_ether/gateway" value="169.254.1.6" id="uiPostSarGate" disabled>
    <input type="hidden" name="sar:settings/dslencap_ether/dns1" value="217.237.149.225" id="uiPostSarDns0" disabled>
    <input type="hidden" name="sar:settings/dslencap_ether/dns2" value="194.25.2.129" id="uiPostSarDns1" disabled>
    <input type="hidden" name="box:settings/ata_mode" value="1" id="uiPostAta">
    <input type="hidden" name="box:settings/ManualDSLSpeed" value="0" id="uiPostSpeedManu" disabled>
    <input type="hidden" name="box:settings/dslbridge_if_routing/activated" value="0" id="uiPostRouterBridge" disabled>
    <input type="hidden" name="box:settings/fullbridge/activated" value="0" id="uiPostFullBridge" disabled>
    <input type="hidden" name="box:settings/dhcpclient/use_static_dns" value="1" id="uiPostUseDns" disabled>
    <input type="hidden" name="interfaces:settings/lan0/dhcpclient" value="0" id="uiPostDhcpc" disabled>
    <input type="hidden" name="interfaces:settings/lan0/ipaddr" value="168.192.0.2" id="uiPostIpaddr" disabled>
    <input type="hidden" name="interfaces:settings/lan0/netmask" value="255.255.255.0" id="uiPostNetmask" disabled>
    <input type="hidden" name="box:settings/gateway" value="168.192.0.1" id="uiPostGateway" disabled>
    <input type="hidden" name="box:settings/dns0" value="192.168.180.1" id="uiPostDns0" disabled>
    <input type="hidden" name="box:settings/dns1" value="192.168.180.2" id="uiPostDns1" disabled>
    
    <input type="hidden" name="var:lanip" value="" id="uiPostLanIp">
    <input type="hidden" name="var:activtype" value="pppoe" id="uiPostActivType">
    <input type="hidden" name="var:isFirst" value="0" id="uiIsFirst">
    <input type="hidden" name="var:newipaddr" value="" id="uiPostNewIpaddr" disabled>
    <input type="hidden" name="var:setAuto" value="" id="uiPostSetAuto">
    <input type="hidden" name="var:ifmode" value="modem" id="uiPostIfMode">
    3:
    Code:
    DoIt() {
    export REQUEST_METHOD="POST"
    export REMOTE_ADDR="127.0.0.1"
    export CONTENT_TYPE="application/x-www-form-urlencoded"
    POST_DATA="sip:settings/sip$1/activated=$2"
    export CONTENT_LENGTH=${#POST_DATA}
    echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null 
    }
    Hier müsste man eigentlich nur die Zeile POST_DATA verändern, oder liege ich falsch? Was ich der Funktion übergeben muss, dass bekomm ich dann schon allein heraus.

    Würde mich über eure Hilfe freuen, melde mich nochmal falls ich 1. hinbekomme.
    Danke schon mal für eure Hilfe.

    MFG Matthias
     
  2. 3dfxatwork

    3dfxatwork Neuer User

    Registriert seit:
    22 Juli 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Halle
    Hallo

    leider hat sich hier noch keiner gemeldet, ich will ja nich stressen, aber es wäre nett, wenn jemand ne Idee dazu hat, diese mal zu posten, bin auch für ganz andere Lösungswege offen.

    MFG Matthias