DynDNS via PHP aktualisieren möglich?

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

  • DynDNS via PHP aktualisieren möglich?

    Hi Leutz...

    Ich betreibe eine Radioseite und möchte gerne das eine dynamische Adresse bei DynDNS durch
    meinen Server aktualisiert wird.
    Folgendes geht dabei von statten:

    1. IP der DynDNS-Adresse wird abgefragt via DNS
    2. IP des Sendenden wird abgefragt beim Shoutcast-Server
    3. IP-DynDNS und IP-Shoutcast werden verglichen. Wenn diese gleich sind passiert nichts!
    Wenn diese ungleich sind, wird bei DynDNS die IP des Sendenden vom Shoutcastserver übernommen
    und dort eingetragen, bzw aktualisiert!
    4. Script startet von vorne!

    Bisher habe ich versucht dies auf PHP-Basis zu lösen, da ich mit Bash-Scripten und Perl nicht wirklich umgehen kann!

    Folgende Schritte habe ich erledigt:

    1. IP der DynDNS-Adresse wird abgefragt via DNS <- [COLOR=green]Funktioniert![/COLOR]
    2. IP des Sendenden wird abgefragt beim Shoutcast-Server <- [COLOR=green]Funktioniert![/COLOR]
    3. IP-DynDNS und IP-Shoutcast werden verglichen. Wenn diese gleich sind passiert nichts! <- [COLOR=green]Funktioniert[/COLOR]
    Wenn diese ungleich sind, wird bei DynDNS die IP des Sendenden vom Shoutcastserver übernommen
    und dort eingetragen, bzw aktualisiert! <- [COLOR=red]Funktioniert NICHT![/COLOR]

    Wenn ich die Informationen an DynDNS übergeben will, bekomme ich immer die Rückmeldung: BADAGENT

    Hat da jemand vielleicht eine Idee??? Ich nutze folgenden Code um die Daten an DynDNS zu übergeben:

    PHP-Code:
    else { $adress "members.dyndns.org";
    $port "80";
    $timeout 10;

    // Verbindung aufbauen
    if (!$fs fsockopen($adress$port$errno$errstr$timeout)) {
        echo(
    "Server down!");
    }

    // HTTP-Anfrage senden
    fputs($fs"GET /nic/update?system=dyndns&hostname=abcradio.ath.cx&myip=".$mod1."&wildcard=NOCHG&
    mx=mail.exchanger.ext&backmx=NO&offline=NO HTTP/1.0\n"
    );
    fputs($fs"Host: " $adress "\n");
    // Als Browser ausgeben
    fputs($fs"Authorization: Basic NICO:1726357");
    fputs($fs"User-Agent: Mozilla/4.0");
    fputs($fs"Connection: close\n");
    fputs($fs"\n");

    // Antwort auslesen
    $contents "";
    while (!
    feof($fs)) {
      
    $contents .= fread($fs4096);
    }

    // Verbindung schlie�n
    fclose($fs);
    echo 
    $contents;
        } 
    Für eine praktikable Lösung wäre ich dankbar!

    In diesem Sinne,
    M0J0

  • #2
    Headerzeilen werden mit \r\n getrennt. Alle!
    Zuletzt geändert von onemorenerd; 28.08.2007, 10:57.

    Kommentar


    • #3
      OK... Problem gelöst!

      Erstmal BigTHX an onemorenerd!!!

      Hier nun die Lösung in Vollendung:

      PHP-Code:
      else { $adress "members.dyndns.org";
      $port "80";
      $timeout 10;
      $userpass "NICO:1726357";
      $base64userpass base64_encode($userpass);

      // Verbindung aufbauen
      if (!$fs fsockopen($adress$port$errno$errstr$timeout)) {
          echo(
      "Server down!");
      }

      // HTTP-Anfrage senden
      fputs($fs"GET /nic/update?system=dyndns&hostname=abcradio.ath.cx&myip=".$mod1."&wildcard=NOCHG&
      mx=mail.exchanger.ext&backmx=NO&offline=NO HTTP/1.0\r\n"
      );
      fputs($fs"Host: " $adress "\r\n");
      // Als Browser ausgeben
      fputs($fs"Authorization: Basic ".$base64userpass."\r\n");
      fputs($fs"User-Agent: Mozilla/4.0\r\n");
      fputs($fs"Connection: close\r\n");
      fputs($fs"\r\n");

      // Antwort auslesen
      $contents "";
      while (!
      feof($fs)) {
        
      $contents .= fread($fs4096);
      }

      // Verbindung schlie�n
      fclose($fs);
      echo 
      $contents;
          } 
      So funktioniert es bei mir!

      Hoffe es hilft auch anderen!

      In diesem Sinne,
      mit bestem Dank,
      M0J0

      Kommentar


      • #4
        Die Zugangsdaten in dieser Lösung sind hoffentlich erfunden.
        Sonst könnte sich jemand den Spaß gönnen und seine eigene IP ...

        Kommentar


        • #5
          Die Zugangsdaten sind natürlich erfunden! ^^

          Kommentar

          Lädt...
          X