Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] dyndns Script

Einklappen

Neue Werbung 2019

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

  • [Erledigt] dyndns Script

    Ich habe ja ein Script entwickelt, was Subdomains erlaubt zu registrieren. Nun da soll auch Dyn DNS druf gehn. Soweit so gut. Alles fertig

    http://dantin.de/update.php?domain=d...sswd=blablabla

    funktioniert als Update Domain.
    Jetzt gebe ich dies bei dem Fritzbox Router ein mit den richtigen Angaben. Er aktualisiert dies zwar, zeigt dann aber immer als Fehlermeldung an:
    Dynamic DNS-Fehler: Die Dynamic DNS-Aktualisierung war erfolgreich, anschließend trat jedoch ein Fehler bei der DNS-Auflösung auf.

    Das Script lautet:
    PHP-Code:
    <?php
    if(isset($ip) && isset($domain) && isset($passwd) && isset($uname))
    {
     include 
    "portal/config.php";
     include 
    "portal/includes/sql_layer.php";
     
    $dbi sql_connect($dbhost$dbuname$dbpass$dbname);
     
    $prefix "nuke";
     
    $user_prefix "nuke";
     global 
    $setinfo$dbi;
     
    $result sql_query("select pass, uid, storynum, umode, uorder, thold, noscore, ublockon, theme, commentmax from ".$user_prefix."_users where uname='$uname'"$dbi);
     
    $setinfo sql_fetch_array($result$dbi);
     if ((
    sql_num_rows($result$dbi)==1) AND ($setinfo[uid] != 1) AND ($setinfo[pass] != ""))
     {
      
    $cryptpass md5($passwd);
      
    $domaine=str_replace(".dantin.de","",$domain);
      
    $query "select subdomain,uname,url,titel,art,time from $prefix"._subdomain." where subdomain='$domaine'";
      
    $result mysql_query($query);
      
    $hehe mysql_fetch_array($result);
      if (
    strcmp ($domaine$hehe['subdomain']) != 0)
      {
       echo 
    "Die Subdomain $domaine.$domain ist noch frei.";
       return 
    FALSE;
       exit;
      }
      if(
    $uname!=$hehe['uname'])
      {
       echo 
    "Die Subdomain $domaine.$domain gehört nicht diesem User.";
       return 
    FALSE;
       exit;
      }
      if (
    $cryptpass == $setinfo[pass])
      {
       if(isset(
    $www))
       {
        
    mysql_query("update $prefix"._subdomain." set url='$www$ip' where subdomain = '$domaine'");
       }
       else
       {
        
    mysql_query("update $prefix"._subdomain." set url='http://$ip' where subdomain = '$domaine'");
       }
       echo 
    "Domain $domaine.dantin.de geupdated auf $www$ip!";
       return 
    TRUE;
      }
      else
      {
       echo 
    "Das Passwort ist nicht korrekt.";
       return 
    FALSE;
       exit;
      }
     }
     else
     {
      echo 
    "Das Passwort ist nicht korrekt.";
      return 
    FALSE;
      exit;
     }
    }
    else
    {
     echo 
    "Es wurden nicht alle nötigen Informationen angegeben.";
     return 
    FALSE;
     exit;
    }

    ?>
    Was muss man tun damit die Router erkennen, dass es aktualisiert wurde? Ich habe es beispielsweise mit return versucht, funktioniert auch nicht...


    Gruß
    summa imperii

  • #2
    anschließend trat jedoch ein Fehler bei der DNS-Auflösung auf
    Dein Script verändert keinen DNS-Eintrag, oder?
    mod = master of disaster

    Kommentar


    • #3
      Beispiel:
      Ich gebe in der Fritz.box die Update URL mit den Infos an.
      Diese ruft die nun auf mit der aktuellen DNS; das Script schreibt diese in die Datenbank was auch funktioniert, allerdings zeigt die Fritz.box trotzdem Fehler an, was bei dyndns.org usw nicht der Fall ist...

      Kommentar


      • #4
        Zitat von summa imperii
        Diese ruft die nun auf mit der aktuellen DNS;
        So, der Satz nochmal auf Deutsch?

        Zitat von summa imperii
        das Script schreibt diese in die Datenbank was auch funktioniert
        Ja und was soll das in der DB bringen? Es muss schliesslich ein Nameserver upgedated werden, damit bei der Fritzbox was ankommt.
        mod = master of disaster

        Kommentar


        • #5
          Ich hab erst gedacht du updatest mit deinem Script einen DNS-Datenbankeintrag.
          (Warum auch immer)

          Aber jetzt verstehe ich, genauso wie mein vorredner wahrscheinlich,
          gerade mal garnichts mehr.

          Welchen Link gibst du der Fritzbox an? Den Link, damit die DB
          geupdatet werden kann, oder Updatet die Fritzbox direkt den
          DNS Namen.

          Oder anders. Geht der DNS-Eintrag zuerst auf eine HP, welche
          wiederum den von der Fritzbox eingetragenen bzw. die eingetragene
          IP auf die Fritzbox weiterleitet.

          Erklaer mal buedde. Ist immerhin auch noch interessant.

          Kommentar


          • #6
            Joa ist schwer zu verstehen...
            Also ich habe ein Script wo man sich eine Subdomain anmelden kann, genau wie bei beispielsweise dyndns.org .

            Diese Subdomain kann man auch als Dyndns benutzen. Wenn man die Update URL mit der Fritz.box aufruft, wird mit dem Update Script ein Datenbank Eintrag geschrieben. Also beim Eintragen wird eine Adresse zum Weiterleiten benutzt, in dem Fall http://$ip .

            Er updatet dann ja den Eintrag in der DB, aber die Fritz.box liefert als Statusmeldung ein Fehler zurück.

            Beim Aufrufen der Subdomain wird der Datenbank Eintrag ausgelesen und dann jeweils weitergeleitet.

            Verstanden? Hoffe ich doch -.-


            Hier sind die Daten die ich in die Fritzbox eintrage:
            Update URL: http://dantin.de/update.php?domain=<domain>&ip=<ipaddr>&uname=<user name>&passwd=<pass>
            Domainname: dns.dantin.de
            Benutzername: danielpeisker
            Passwort: blablabla

            Funktioniert alles prima die Datenbank wird geupdatet; trotzdem liefert die Fritzbox ein Fehler zurück was ich nicht verstehe!

            Kommentar


            • #7
              Zitat von summa imperii
              wie bei beispielsweise dyndns.org
              Die Hauptaufgabe von dyndns ist die Verwaltung ihrer Nameserver, also sicherzustellen, dass die für die Domain zuständigen Nameserver für die zu aktualisierende Subdomain auf die neue IP zeigen.

              Wenn Du eine Nameserverabfrage machst (z.B. gethostbyname() in PHP oder "dig" auf der Kommandozeile), muss das die richtige IP liefern.

              Zitat von summa imperii
              Funktioniert alles prima die Datenbank wird geupdatet; trotzdem liefert die Fritzbox ein Fehler zurück was ich nicht verstehe!
              Setz dich mal damit auseinander, was das Domain Name System ist und wie es das Internet zusammenhält, geh dann nochmal zurück ans Zeichenbrett, plane das ganze nochmal von vorne und dann solltest Du auch verstehen, warum ein Eintrag in deiner Datenbank die Fritzbox genausowenig interessiert wie wenn ich hier irgendwas in ne Datenbank eintrage.
              mod = master of disaster

              Kommentar


              • #8
                ok

                aber funktionieren tut das ganze ja trotzdem... Eigentlich ruft die Fritz.box ja nur den Link auf; aber naja das andere wusst ich eben noch nicht.

                thx

                Kommentar


                • #9
                  Für mich hört sich das so an:

                  1. Der obige Link Updatet einen Datenbankeintrag. (Von einer Subdomain)

                  2. Diese Subdomain leitet nicht direkt auf die IP, sondern zuerst auf ein
                  PHP-Skript, welches wiederum auf die eingetragene IP in der Datenbank umleitet.

                  Richtig?

                  Aber das mit dem registrieren der Subdomains versteh ich immer noch net.
                  Meinste damit das Updaten der DB oder wirklich ein anlegen der Subdomain?

                  Kommentar


                  • #10
                    Zitat von summa imperii
                    aber funktionieren tut das ganze ja trotzdem...
                    Das funktiniert nicht wegen Deines Scriptes sondern nur deshalb, weil im Nameservereintrag von DynDns ein Catchall Record ist, der alle weiteren SubSubdomains, egal ob sie existieren, an Deine IP weiterleitet.
                    Eigentlich ruft die Fritz.box ja nur den Link auf;
                    Quatsch. Die Fritzbox ruft keine Links auf. Das ist einm popliger NAT Router, den Du etwas aufgebohrt hast, damit er das tut, was er sonst eigentlich bleiben lassen sollte: Anfragenm aus dem Inet ins lokale Netz durchlassen.

                    Ob sich Dein Apache allerdings angesprochen fühlt, hängt von der Konfiguration im Virtualhost ab:
                    servername deine-domain.de
                    serveralias *.deine-domain.de
                    Und schon beantwortet die Rothaut alle an *.deine-domain.de und Deine IP Port 80 gerichteten Anfragen.

                    Kommentar


                    • #11
                      okkkkkk....

                      Richtig?

                      Aber das mit dem registrieren der Subdomains versteh ich immer noch net.
                      Meinste damit das Updaten der DB oder wirklich ein anlegen der Subdomain?
                      Joa beim Registrieren legt das Script ein neuen Ordner an mit einer Index.php -- denn dadurch wird auf dem Webspace automatisch eine neue Subdomain erstellt (mit dem Namen vom Ordner)...

                      Wenn man dann registriert ist kann man die Einstellungen vornehmen die in die DB geschrieben werden (index.php ließt die dann aus und leitet dermaßen weiter)

                      Ach und nein es ist so:
                      Man gibt den Link an und den ruft er ganz normal auf: Mit den Angaben die eingegeben wurden. Das weiß ich 100%ig! Wie sonst läuft das Script davon abgesehen auch ganz normal ab und updatet die MYSQL Datenbank?

                      ...


                      Ich habe in einem anderen Thread schon gefragt wäre es möglich das beispielsweise die URL hinter der Subdomain auch mit weitergeleitet wird (denn normalerweise versucht er dann ja auf den Pfad auf dem Webspace zuzugreifen ==> Fehler 404)

                      Gruß
                      summa imperii

                      Kommentar

                      Lädt...
                      X