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;
?>