Sie sind auf Seite 1von 3

<?

php
$pwort = '303a04cf7c9428f94167ba1fd3345fd3'; //nur f�r Verwendung ohne HTTP-
Authentifizierung
$port = "";
$dyntxt = "ip.txt"; //der Server muss Schreibrechte im Verzeichnis besitzen

// Bisher gesetzte IP-Adresse ermitteln


// IP-Update ohne Passwort �ber HTTP-Authentifizierung
// HTTP-Authentifizierung muss auf dem Webserver aktiviert sein
// Beispiel: IP-Adresse ermitteln
// http://www.meinserver.de/dyndns/dyndnsupdater.php?action=getip
// Beispiel: IP-Adresse aktualisieren
// http://www.meinserver.de/dyndns/dyndnsupdater.php?
action=update&meineip=123.456.789.123
// Beispiel Webseite aurufen und zur dynmaischen IP mit HTTP umleiten:
// http://www.meinserver.de/dyndns/dyndnsupdater.php?action=redirect

if (isset($_SERVER['HTTP_AUTHORIZATION']) ||
isset($_SERVER['PHP_AUTH_USER']))
{
if (isset($_GET["action"]) && !isset($_GET["pass"]) ) {
switch ($_GET['action'])
{
case 'getip':
echo get_ip($dyntxt);
break;

case 'update':
if (isset($_GET["meineip"])) {
$a = fopen("$dyntxt", "w");
fwrite($a, $_GET["meineip"]);
fclose($a);
echo "OK";
}
break;
case 'open':
if (isset($_GET["SSL"])) {
echo "https://".get_ip($dyntxt);
} else {
echo "http://".get_ip($dyntxt)."".$port;
}
break;
case 'redirect':
if (isset($_GET["SSL"])) {
$url = "https://".get_ip($dyntxt);
} else {
$url = "http://".get_ip($dyntxt)."".$port;
}
header("Location: $url");
break;

}
}
} else {
// IP-Adresse mit Passwort setzen
// HTTP-Authentifizuierung darf dabei *nicht* aktiviert sein
// Beispiel IP setzen:
// http://www.meinserver.de/dyndns/dyndnsupdater.php?
pass=12345&meineip=123.456.789.123
// Beispiel Webseite aurufen und zur dynmaischen IP mit HTTPS umleiten:
// http://www.meinserver.de/dyndns/dyndnsupdater.php?FW=1
// Beispiel Webseite aurufen und zur dynmaischen IP mit HTTP umleiten:
// http://www.meinserver.de/dyndns/dyndnsupdater.php
//
// Zur Verwendung mit der Fritzbox hinter "Update-URL":
// http://www.meinserver.de/dyndns/dyndnsupdater.php?
pass=<pass>&meineip=<ipaddr>

$pwortcontrol = $_GET["pass"];

$FW = $_GET["FW"];
if (!isset($_GET["meineip"])) {
if ($FW == 1) {
$url="https://".get_ip($dyntxt);
} else {
$url="http://".get_ip($dyntxt)."".$port;
}
header("Location: $url");

} else {
$IP = $_GET["meineip"];
if ($pwortcontrol==$pwort)
{
$a = fopen("$dyntxt", "w");
fwrite($a, $IP);
fclose($a);
echo "OK";
} else {
echo "Zugriff verweigert";
}
}
}

//IP-Adresse aus Datei lesen


function get_ip ($dyntxt){
if (file_exists($dyntxt)) {
$a = fopen("$dyntxt", "r");
return (fread($a,filesize($dyntxt)));
fclose($a);
}
}
// Beipspiel: .htaccess
// Die Datei ".htpasswd_dyndns" liegt hier im Verzeichnis /etc/apache2/auth
(Debian)
// Sie enth�lt Benutzernamen und Passwort ujnd l�sst sich auf der Kommandozeile mit
// dem Befehl htpasswd erstellen.
// Oder Sie verwenden daf�r einen Dienst wie
// http://www.htaccesstools.com/htpasswd-generator/
// AuthUserFile auth/.htpasswd_dyndns
// AuthType Basic
// AuthName "Bitte Benutzername/Passwort eingeben"
// <Limit GET>
// require valid-user
// </Limit>
// Nachfolgende Zeilen sind nur n�tig, wenn PHP als CGI zum Einsatz kommt
// <IfModule mod_rewrite.c>
// RewriteEngine on
// RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
// </IfModule>

// Zur Ermittlung der IP-Adresse dient das Script getExtIP.php auf dem Server:
// <?php
// header("Content-type: text/plain");
// echo $_SERVER['REMOTE_ADDR'];
// ?>