+ Antworten
Seite 1 von 39 1 2 3 11 ... LetzteLetzte
Ergebnis 1 bis 10 von 386
  1. #1
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,331

    Standard Fritzbox 7270/Wlan Repeater Scripts

    Ich hatte ja schon mal geschrieben, dass die SID benötigt wird.

    Funktioniert nur mit Firmware ab xx.04.74 oder neuer. Ältere unterstützen keine Session !!
    Diese gilt für alle Scripts !!!

    So geht es, prof of concept.

    Die benötigten Dateien im Anhang nach ext kopieren und Dienst neu starten.

    Passwort eintragen.

    Variable für Webfront anlegen mit Profil ~Switch. Variable dem Script zuweisen. Fertig.

    Hier der Link. für SID.

    Bitte kurzes Feedback.

    Bei Problemen mit den Scripts, bitte hier posten. http://www.ip-symcon.de/forum/f52/pr...x-7270-a-8269/

    Script für Anruferliste ohne extension!
    http://www.ip-symcon.de/forum/f53/an...auslesen-9948/

    Viel Spass


    PHP-Code:
    <?
    if ($IPS_SENDER == "WebFront")
    {
        
    SetValue(32754 /*[Anrufbeantworter]*/$IPS_VALUE);
    }

    $fritzbox_ip 'fritz.box';
    $fritzgui    'http://fritz.box/cgi-bin/webcm';
    $fritzseite  '../html/de/menus/menu2.html';
    $password    'xxxxxx';
    $ein         '1';
    $aus         '0';

    $ch curl_init('http://' $fritzbox_ip '/cgi-bin/webcm?getpage=../html/login_sid.xml');
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    $login curl_exec($ch);
    curl_close($ch);
    $session_status_simplexml simplexml_load_string($login);

        
    if (
    $session_status_simplexml->iswriteaccess == 1)
    {
       
    $SID $session_status_simplexml->SID;
    }
    else
    {
       
    $challenge $session_status_simplexml->Challenge;
       
    $response $challenge '-' md5(mb_convert_encoding($challenge '-' $password"UCS-2LE""UTF-8"));
       
    $login = array('getpage' => $fritzseite'login:command/response' => $response);
       
    $sendlogin http_post_fields($fritzgui$login);
       
    preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@i'$sendlogin$matches);
       if (isset(
    $matches[1]) && $matches[1] != '0000000000000000')
       {
          
    $SID $matches[1];
       }
    }

    if (
    $IPS_VALUE)
    {
        
    $settam http_post_fields($fritzgui, array('getpage' => $fritzseite'sid' => $SID'tam:settings/TAM0/Active' => $ein));
    }
    else
    {
       
    $settam http_post_fields($fritzgui, array('getpage' => $fritzseite'sid' => $SID'tam:settings/TAM0/Active' => $aus));
    }

    $logout = array('getpage' => $fritzseite'sid' => $SID'security:command/logout' => 'logout');
    $sendlogout http_post_fields($fritzgui$logout);


    ?>

    Script nur mit cURL Abfrage als Beispiel!


    PHP-Code:
    <?
    if ($IPS_SENDER == "WebFront")
    {
        
    $fritzbox_ip 'fritz.box';
        
    $fritzgui    'http://fritz.box/cgi-bin/webcm';
        
    $fritzseite  '../html/de/menus/menu2.html';
        
    $password    'xxxxx';
        
    $ein         '1';
        
    $aus         '0';

        
    $ch curl_init('http://' $fritzbox_ip '/cgi-bin/webcm?getpage=../html/login_sid.xml');
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    $login curl_exec($ch);
        
    $session_status_simplexml simplexml_load_string($login);

        if (
    $session_status_simplexml->iswriteaccess == 1)
        {
           
    $SID $session_status_simplexml->SID;
        }
        else
        {
           
    $challenge $session_status_simplexml->Challenge;
           
    $response $challenge '-' md5(mb_convert_encoding($challenge '-' $password"UCS-2LE""UTF-8"));
            
    curl_setopt($chCURLOPT_POSTFIELDS"login:command/response={$response}&getpage=../html/de/menus/menu2.html");
            
    preg_match('/name="sid" value="([0-9a-f]*)"/'curl_exec($ch), $matches);
           if (isset(
    $matches[1]) && $matches[1] != '0000000000000000')
           {
              
    $SID $matches[1];
           }
           else
           {
              echo 
    "Fehler: Login fehlgeschlagen";
              return;
            }
        }

        if(
    $IPS_VALUE)
        {
            
    curl_setopt($chCURLOPT_POSTFIELDS"sid={$SID}&tam:settings/TAM1/Active={$ein}");
            
    curl_exec($ch);
        }
        else
        {
           
    curl_setopt($chCURLOPT_POSTFIELDS"sid={$SID}&tam:settings/TAM1/Active={$aus}");
           
    curl_exec($ch);
        }
        
    curl_close($ch);
        
    SetValue($IPS_VARIABLE$IPS_VALUE);
    }

    ?>
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	AB.png 
Hits:	2163 
Größe:	2.4 KB 
ID:	6000  
    Angehängte Dateien Angehängte Dateien
    Geändert von RWN (21.10.11 um 15:08 Uhr) Grund: Script für nur cURL Abfrage eingefügt!
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  2. #2
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,331

    Standard Noch 2 Beispiele

    Wlan ein/aus

    PHP-Code:
    $wlan http_post_fields($fritzgui, array('getpage' => $fritzseite'sid' => $SID'wlan:settings/ap_enabled' => $ein));
    $wlan http_post_fields($fritzgui, array('getpage' => $fritzseite'sid' => $SID'wlan:settings/ap_enabled' => $aus)); 
    Mediaserver ein/aus

    PHP-Code:
    $mediaserver http_post_fields($fritzgui, array('getpage' => $fritzseite'sid' => $SID'mediasrv:settings/enabled' => $ein));
    $mediaserver http_post_fields($fritzgui, array('getpage' => $fritzseite'sid' => $SID'mediasrv:settings/enabled' => $aus)); 
    Normal kann man so alles ein und aus schalten.
    Auf der entsprechenden Seite der Fritzbox, rechter Mausklick=>Aktueller Frame=>Frame Quelltext anzeigen. Das gewünschte auswählen und in Script eintragen.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  3. #3
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    22,217

    Habe den Beitrag mal rauskopiert, da ich ihn für ein tolles und nützliches Skript halte

    paresy

  4. #4
    Registriert seit
    Feb 2007
    Ort
    Zwickau
    Beiträge
    5,490

    MfG Thomas

    Eaton Xcomfort|FS20|1-Wire|Axis WebCams|WMRS200 Wetterstation|Funksystem-868|Gas und Wasserzähler per S0 1-Wire|E-Zähler per OKK+seriell2LAN Adapter|Amazon Alexa|
    Visu auf: 10"Touchscr.|Apple iPod Touch|Apple iPhone|Apple iPad|IPS V5.x|Dashboard|WebFront|iFront


  5. #5
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,331

    Standard Automatische Rückmeldung des Stati

    Mit Rückmeldung ob Ein oder Ausgeschaltet.

    PHP-Code:
    <?
    if ($IPS_SENDER == "WebFront")
    {
        
    $fritzbox_ip 'fritz.box';
        
    $fritzgui    'http://fritz.box/cgi-bin/webcm';
        
    $fritzseite  '../html/de/menus/menu2.html';
        
    $password    'xxxxxxx';
        
    $ein         '1';
        
    $aus         '0';

        
    $ch curl_init('http://' $fritzbox_ip '/cgi-bin/webcm?getpage=../html/login_sid.xml');
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    $login curl_exec($ch);
        
    curl_close($ch);
        
    $session_status_simplexml simplexml_load_string($login);

        
        if (
    $session_status_simplexml->iswriteaccess == 1)
        {
           
    $SID $session_status_simplexml->SID;
        }
        else
        {
           
    $challenge $session_status_simplexml->Challenge;
           
    $response $challenge '-' md5(mb_convert_encoding($challenge '-' $password"UCS-2LE""UTF-8"));
           
    $login = array('getpage' => $fritzseite'login:command/response' => $response);
           
    $sendlogin http_post_fields($fritzgui$login);
           
    preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@i'$sendlogin$matches);
           if (isset(
    $matches[1]) && $matches[1] != '0000000000000000')
           {
              
    $SID $matches[1];
           }
           else
           {
              echo 
    "Fehler: Login fehlgeschlagen";
              return;
           }
        }

        if (
    $IPS_VALUE)
        {
            
    $settam http_post_fields($fritzgui, array('getpage' => $fritzseite'sid' => $SID'tam:settings/TAM0/Active' => $ein));
        }
        else
        {
           
    $settam http_post_fields($fritzgui, array('getpage' => $fritzseite'sid' => $SID'tam:settings/TAM0/Active' => $aus));
        }

        
    $checksetting = array('getpage' => $fritzseite'var:menu' => 'home''var:pagemaster' => 'fondevices''var:pagename' => 'fondevices');
        
    $sendcheck http_post_fields($fritzgui$checksetting);
        
    preg_match('@name="tam:settings/TAM0/Active" value="([10])"@i'$sendcheck$matches);
        if (isset(
    $matches[1]) && $matches[1] == 1)
        {
            
    SetValue(32754 /*[Fritzbox\Anrufbeantworter\Anrufbeantworter]*/1);
        }
        else
        {
           
    SetValue(32754 /*[Fritzbox\Anrufbeantworter\Anrufbeantworter]*/0);
        }

        
    $logout = array('getpage' => $fritzseite'sid' => $SID'security:command/logout' => 'logout');
        
    $sendlogout http_post_fields($fritzgui$logout);
    }

    ?>
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  6. #6
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,331

    Standard Anruferliste Fritzbox 7270

    Zum testen.

    Im user Verzeichnis einen Ordner Fritzbox anlegen mit Datei Anrufliste.csv,
    dort wird die Datei gespeichert und steht so auch in Excel Anwendungen zur Verfügung.
    Wem das mit der Hintergrundfarbe nicht gefällt, kann dieses ändern, ist im Script vermerkt.

    Kurzes Feedback wäre schön, ob alles geht.

    PHP-Code:
    <?
    $fritzbox_ip 
    'fritz.box';
    $fritzgui    'http://fritz.box/cgi-bin/webcm';
    $fritzseite  '../html/de/menus/menu2.html';
    $filename   IPS_GetKernelDir()."\\webfront\\user\\Fritzbox\\Anrufliste.csv";// anpassen
    $password    'xxxxxx';
    $ein         '1';
    $aus         '0';

    $ch curl_init('http://' $fritzbox_ip '/cgi-bin/webcm?getpage=../html/login_sid.xml');
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    $login curl_exec($ch);
    curl_close($ch);
    $session_status_simplexml simplexml_load_string($login);
        

    if (
    $session_status_simplexml->iswriteaccess == 1)
    {
       
    $SID $session_status_simplexml->SID;
    }
    else
    {
       
    $challenge $session_status_simplexml->Challenge;
       
    $response $challenge '-' md5(mb_convert_encoding($challenge '-' $password"UCS-2LE""UTF-8"));
       
    $login = array('getpage' => $fritzseite'login:command/response' => $response);
       
    $sendlogin http_post_fields($fritzgui$login);
       
    preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@i'$sendlogin$matches);
       if (isset(
    $matches[1]) && $matches[1] != '0000000000000000')
       {
          
    $SID $matches[1];
       }
       else
       {
          echo 
    "Fehler: Login fehlgeschlagen";
          return;
        }
    }
        
    //Anrufliste aktualisieren 
    $gotopage = array('getpage' => $fritzseite,'sid' => $SID'var:menu' => 'home''var:pagename' => 'foncalls'); 
    $getnewlist http_post_fields($fritzgui$gotopage); 
     
    //Anrufliste abholen 
    $anrufliste http_post_fields($fritzgui, array('getpage' => '../html/de/FRITZ!Box_Anrufliste.csv''sid' => $SID)); 
    $anrufliste explode(';'$anrufliste4); 
    $anrufliste $anrufliste[3]; 
    $fileHandle = @fopen($filename'wb+'); 
    @
    fwrite($fileHandle$anrufliste); 
    @
    fclose($fileHandle);  

        
    $filename "../webfront/user/Fritzbox/Anrufliste.csv"
    $id = @fopen($filename"r"); 
    while (
    $data fgetcsv($idfilesize($filename),";")) 
    $table[] = $data
    @
    fclose($id);

    echo 
    "<table width='995' border='0' cellspacing='0' cellpadding='0' style = 'background-color:#283040'>"// Farbe anpassen oder style entfernen

    foreach($table as $row)
    {
        echo 
    "<tr>";
        foreach(
    $row as $data)
        echo 
    '<td width="auto"><div align="center">'.$data.'</div></td>';
        echo 
    "</tr>\n";
    }
    echo 
    "</table>\n";

    $logout = array('getpage' => $fritzseite'sid' => $SID'security:command/logout' => 'logout');
    $sendlogout http_post_fields($fritzgui$logout);
    ?>
    Angehängte Grafiken Angehängte Grafiken  
    Geändert von RWN (25.09.09 um 23:03 Uhr)
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  7. #7
    Registriert seit
    Jul 2008
    Beiträge
    311

    Hallo Rainer,

    Dein Script funtioniert - vielen Dank dafür!

    Hab mich auch schon länger mit der SID der Box herumgeschlagen. Durch Deinen Beitrag hat es dann auch bei mir "klick" gemacht!

    Eine Kleinigkeit sollte noch in das Skript:
    Damit man immer die aktuelle CSV-Datei bekommt, muss man diese vorher aktualisieren.
    z.B.:
    PHP-Code:
    //Anrufliste aktualisieren
    $gotopage = array('getpage' => $fritzseite,'sid' => $SID'var:menu' => 'home''var:pagename' => 'foncalls');
    $getnewlist http_post_fields($fritzgui$gotopage);

    //Anrufliste abholen
    $anrufliste http_post_fields($fritzgui, array('getpage' => '../html/de/FRITZ!Box_Anrufliste.csv''sid' => $SID));
    $anrufliste explode(';'$anrufliste4);
    $anrufliste $anrufliste[3];
    $fileHandle = @fopen($filename'wb+');
    @
    fwrite($fileHandle$anrufliste);
    @
    fclose($fileHandle); 
    Viele Grüße
    MTec
    Geändert von RWN (25.09.09 um 23:38 Uhr)

  8. #8
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,331

    Hallo MTec,

    ist mir noch nicht aufgefallen. Danke.

    Habs oben eingefügt.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  9. #9
    Registriert seit
    May 2006
    Ort
    Augustdorf
    Beiträge
    479

    Ja und wieder mal muss ich sagen .... danke danke danke.
    Läuft 1a
    Der WAF steigt stätig.

    Grüße Mirco

  10. #10
    Registriert seit
    Dec 2005
    Ort
    Bremen
    Beiträge
    204

    Läuft 1a, danke für das Script

    Gruß Sven

Ähnliche Themen

  1. Fritzbox 7270 und IPS 2.0
    Von Bernardo71 im Forum Allgemeine Diskussion
    Antworten: 34
    Letzter Beitrag: 08.04.09, 18:27
  2. Low Cost Router mit Fritzbox 7270
    Von Mike im Forum Allgemeine Diskussion
    Antworten: 4
    Letzter Beitrag: 07.01.09, 21:59

Stichworte