Kategorien
Linux

Der Kleinste DynDNS Client in PHP

Algemeines zu DynDNS Clients.

Ein DynDNS Client soll die Aktuelle IP-Adresse der Internetanbindung in erfahrung bringen und diese an eine DynDNS-Update-URL des DynDNS Anbieters, zusammen mit den Benutzerdaten, übermitteln.
Die IP-Adresse hole ich in meinen Beispielen, siehe auch diesen Artikel zu diesem Thema, von der URL http://shortip.de/txt
Das Script sollte entsprechend regelmäßig aufgerufen werden. Ein zu häufiger Aufruf, zum Beispiel in jeder Sekunde oder jeder Minute führt bei vielen DynDNS Anbietern zu einer Sperrung des DynDNS Dienstes. Es hat sich bewährt alle 10 Minuten den DynDNS Dienst mit der IP-Adresse zu kontaktieren.

Auf Linux Systemen ist es möglich einen eigenen Cronjob anzulegen der das PHP-Script dann alle 10 Minuten ausführt.:

*/10 * * * * /usr/bin/php /home/user/cronjob.php

der DynDNS Client in PHP:

Die Benutzerdaten durch die des eigenen DynDNS Anbieters ergänzen 😉

<?
$Benutzer = "example.com";
$Passwort = "passwort";
$Domain = "subdomain.example.com";
$Server = "dyndns.strato.com";
$Secure = false;

/**** Die Abfrage ****/
// IP holen
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://shortip.de/txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$IP = curl_exec($ch);
curl_close($ch);
unset($ch);
// Update String bauen
if($Secure) $Update ='https://'; else $Update ='http://';
$Update.=$Benutzer.':'.$Passwort;
$Update.='@'.$Server.'/nic/update?hostname=';
$Update.=$Domain.'&myip='.$IP;
// CURL($Update);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Update);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ERR = curl_exec($ch);
curl_close($ch);
unset($ch);
// "Fehler"-Ausgabe
echo $ERR;
?>

Von der_metzger

Hi, ich bin Jan Kuehnel - Fachinformatiker für Systemintegration ,Linux-Benutzer und Blogger. Seit 2019 arbeite ich als Systemadministrator bei einem beliebten deutschen Fahrradverleih und zuvor über 10 Jahren bei einem großen deutschen Provider. Ich folge seit meiner Kindheit dem Hobby, technische Rätsel zu lösen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.