Ankündigung

Einklappen
Keine Ankündigung bisher.

Update URL für dyn DNS zb Speedport

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Update URL für dyn DNS zb Speedport

    Hi,

    mich nervt der 30 Tage zwangslogin bei z.B no-ip.com.

    Bei mir nutze ich derzeit den Anbieter ddnss.de zusammen in einer Fritzbox konfiguriert. Funktioniert auch problemlos.

    Meine Schwester hat bei sich einen speedport der Telekom. Dort kann ich leider keinen alternativen Anbieter auswählen sondern bin an die Liste gebunden.
    Jetzt war meine Überlegung, dass ich einen Account bei ddnss.de anlege und mittels Edomi die UpdateUrl aufrufe.

    Gibt es hier eine Möglichkeit dies direkt in Edomi zu erledigen??? Z.B: die url als http anlegen und per Stundenimpuls aufzurufen??

    Gruß benji

    #2
    Warum machst du es nicht wie hier beschrieben:

    https://ddnss.de/info.php (Hier auf CRON und Bash Skript klicken)

    Skript download, konfigurieren und Cron Job anlegen, fertig. Sollte auf einem EDOMI Server problemlos funktionieren. Das muss natürlich aus dem Netz deiner Schwester passieren.
    Zuletzt geändert von jonofe; 20.03.2017, 08:55.

    Kommentar


      #3
      Hi,

      danke, habe ich nicht gesehen, werde ich mal so testen.

      Aber rein aus Interesse, es würde doch theoretisch über ein php script funktionieren oder?

      Gruß Benjamin

      Kommentar


        #4
        Zitat von benji Beitrag anzeigen
        Hi,

        danke, habe ich nicht gesehen, werde ich mal so testen.

        Aber rein aus Interesse, es würde doch theoretisch über ein php script funktionieren oder?

        Gruß Benjamin
        Ja klar. Man müsste einfach das Bash Skript nach PHP migrieren.

        Kommentar


          #5
          Hi,

          hab mir jetzt einen LBS dazu gebaut. Leider will der noch nicht so ganz laufen. Es kommt keine Fehlermeldung bei ausführen des Bausteins.

          Abfrage der IP Adresse läuft auch.
          Wenn IP gleich ist, wird auch im Log geschrieben "kein Update". Dadurch, dass ich die akt. IP in v3 schreibe und nicht auf Remanent iKO wird natürlich bei jedem Neustart von Edomi ein Update durchgeführt.

          Wenn die IP sich ändert, soll ein Update durchgeführt werden und die URL aufgerufen werden. Die ausgegebene URL funktioniert auch wenn ich Sie im Browser eingebe. Diese zeigt dann an, x hosts updated. Kann es sein, das fopen hier nicht der richtige weg ist??

          Gruß Benjamin
          Zuletzt geändert von benji; 21.03.2017, 10:07.

          Kommentar


            #6
            Hi,


            hab das ganze jetzt über curl getestet, allerdings ohne POSTFIELD sondern direkt mit der url.

            Leider funktioniert dies aber nicht. Kann mir jemand einen Tip geben?? Finde den Fehler irgendwie nicht. Die url welche ins Log kommt, stimmt und über diese kann ich den host auch updaten.


            Danke Gruß Benji


            PHP-Code:


            ###[DEF]###
            [name =     ddnss]
            [e#1 =         Autostart #init=1]
            [e#2 =         LogLevel #init=8]
            [e#3 =         user]
            [e#4 =         pass]
            [e#5 =         host]


            [a#1 = akt. IP]
            [a#2 = Update]

            [v#1             = 0 ]
            [v#2             = 0 ]
            [v#3             = 0 ]

            [v#100 = 0.1]                                  //Version
            [v#101 = 19999951]                          //LBS ID
            [v#102 =    ddnss]                          //LBS Name
            [v#103        = 0 ]                            // Log level
            [v#104        = 0 ]                            // Log per instance
            [v#105        = 0 ]                            // log ID in each line
            ###[/DEF]###


            ###[HELP]###

            ###[/HELP]###

            ###[LBS]###
            <?
            function LB_LBSID_logging($id, $msg, $var = NULL, $priority = 8)
            {
                $E = getLogicEingangDataAll($id);
                $logLevel = getLogicElementVar($id, 103);
                if (is_int($priority) && $priority <= $logLevel && $priority > 0) {
                    $logLevelNames = array(
                        'none',
                        'emerg',
                        'alert',
                        'crit',
                        'err',
                        'warning',
                        'notice',
                        'info',
                        'debug'
                    );
                    $version = getLogicElementVar($id, 100);
                    $lbsNo = getLogicElementVar($id, 101);
                    $logName = getLogicElementVar($id, 102) . "-LBS$lbsNo";
                    $logName = preg_replace('/ /', '', $logName);
                    if (logic_getVar($id, 104))
                        $logName .= "-$id";
                    if (logic_getVar($id, 105) == 1)
                        $msg .= " ($id)";
                    strpos($_SERVER['SCRIPT_NAME'], $lbsNo) ? $scriptname = 'EXE' . $lbsNo : $scriptname = 'LBS' . $lbsNo;
                    writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . $msg);
                    if (isset($var)) {
                        writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t================ ARRAY/OBJECT START ================");
                        writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . json_encode($var));
                        writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t================ ARRAY/OBJECT  END  ================");
                    }
                }
            }

            function LB_LBSID($id) {

                if ($E=logic_getInputs($id)) {
                    setLogicElementVar($id, 103, $E[2]['value']); // set loglevel to #VAR 103
                    LB_LBSID_logging($id, 'LBS started');

                    if ($E[1]['refresh']==1){
                    logic_setVar($id,1,1);    
                    logic_setVar($id,2,1);
                    }

                    if (logic_getVar($id,1)==1)  {                //setzt V1=1, um einen mehrfachen Start des EXEC-Scripts zu verhindern
                    logic_callExec(LBSID,$id);                //EXEC-Script starten
                    LB_LBSID_logging($id, 'LBS ended');
                    }    
                }
            }    

            ?>
            ###[/LBS]###


            ###[EXEC]###
            <?
            require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
            set_time_limit(35);
            sql_connect();

            //-------------------------------------------------------------------------------------
            function logging($id, $msg, $var = NULL, $priority = 8)
            {
                $E = getLogicEingangDataAll($id);
                $logLevel = getLogicElementVar($id, 103);
                if (is_int($priority) && $priority <= $logLevel && $priority > 0) {
                    $logLevelNames = array(
                        'none',
                        'emerg',
                        'alert',
                        'crit',
                        'err',
                        'warning',
                        'notice',
                        'info',
                        'debug'
                    );
                    $version = getLogicElementVar($id, 100);
                    $lbsNo = getLogicElementVar($id, 101);
                    $logName = getLogicElementVar($id, 102) . "-LBS$lbsNo";
                    $logName = preg_replace('/ /', '_', $logName);
                    if (logic_getVar($id, 104) == 1)
                        $logName .= "-$id";
                    if (logic_getVar($id, 105) == 1)
                        $msg .= " ($id)";
                    strpos($_SERVER['SCRIPT_NAME'], $lbsNo) ? $scriptname = 'EXE' . $lbsNo : $scriptname = 'LBS' . $lbsNo;
                    writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . $msg);
                    if (isset($var)) {
                        writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t================ ARRAY/OBJECT START ================");
                        writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . json_encode($var));
                        writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t================ ARRAY/OBJECT  END  ================");
                    }
                }
            }

            if ($E=logic_getInputs($id)){
                    $V=logic_getVars($id);
                  }

            $user = $E[3]['value'];
            $passwort = $E[4]['value'];
            $host= $E[5]['value'];


            if ($V[2]==1) {    
                $ip = `wget -q -O - http://www.ddnss.de/meineip.php| grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`;
                logic_setVar($id,2,0);
                logic_setVar($id,3,$ip);
                setLogicLinkAusgang($id,1,$ip);
                logging($id, "akt. IP  = " .$ip);

            }    


            if ($V[3]==$ip) {    
                setLogicLinkAusgang($id,2,0);
                logging($id, "kein Update");

            }

            else {

                $url= "http://www.ddnss.de/upd.php?user=" .$user ."&pwd=" .$passwort ."&host=" .$host;

                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL,$url);
                curl_setopt($ch, CURLOPT_TIMEOUT, 30);
                curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                $strResult=curl_exec($ch);
                curl_close ($ch);
                logging($id,$url);
                logging($id,"update durchgeführt");
                logging($id,$strResult);
                setLogicLinkAusgang($id,2,1);

            }


            logic_setVar($id,1,0);                                            //setzt V1=0, um einen erneuten Start des EXEC-Scripts zu ermöglichen
            logging($id, "EXEC End");
            //-------------------------------------------------------------------------------------

            sql_disconnect();
            ?>
            ###[/EXEC]###

            Kommentar


              #7
              Ich hab den Teil mit curl jetzt mal unabhängig von dem LBS in einer .php geöffnet. Das ganze auf Edomi-Server in www Ordner und über Terminal geöffnet. Bekomme folgende Fehlermeldung:

              Code:
               call undefined function curl_init
              Laut phpinfo ist cURL support: enabled.


              Jemand eine Idee?

              Kommentar


                #8
                Hi,

                hat niemand eine Idee woran es liegt, dass curl nicht funktioniert???

                Gruß Benjamin

                Kommentar

                Lädt...
                X