PHP-DynIP
dynip.php
<?php $logging = 'yes'; $users = array('USER1', 'USER2', 'USER3'); $login_passwort = 'PASSWORT'; date_default_timezone_set('Europe/Berlin'); setlocale(LC_TIME, 'de_DE'); $log_dir = 'logs'; $dynip_dir = 'dynips'; $result = 'good'; $passwort = $_GET['pass']; $user = $_GET['user']; $domain = $_SERVER['SERVER_NAME']; if ( isset($_GET['myip']) ) { $request_ip = False; $dynip = $_GET['myip']; $state = 'set ip to '.$dynip; } else { $request_ip = True; $state = 'requested ip'; } if ( ($passwort == $login_passwort) && (in_array($user, $users)) ) { $ip_file = "{$dynip_dir}/{$user}.txt"; if ( $request_ip ) { if ( file_exists($ip_file) ) { $file = fopen("$ip_file", "r"); $ip = fread($file,filesize($ip_file)); fclose($file); echo "{$ip}"; } else { $result = 'bad'; ?> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /dyndns/dynip.php was not found on this server.</p> </body></html> <?php } } else { if ( !file_exists($dynip_dir) ) { mkdir($dynip_dir, 0777, true); } if ( !file_exists($ip_file) ) { $file = fopen("$ip_file", "w+"); fwrite($file, "127.0.0.1"); fclose($file); } if ( $dynip !== "" ); { $file = fopen("$ip_file", "w"); fwrite($file, $dynip); fclose($file); echo "good"; } } } else { $user = 'unknown user'; $result = 'fail'; ?> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /dyndns/dynip.php was not found on this server.</p> </body></html> <?php } if ( $logging == 'yes' ) { if ( !file_exists($log_dir) ) { mkdir($log_dir, 0777, true); } $log_file = "{$log_dir}/".date('Y-m').".txt"; $date = date("Y-m-d H:i:s",time()); $append_to_log = "{$date} - {$user} {$state} => {$result}\n"; $file = fopen("$log_file", "a"); fwrite($file, $append_to_log); fclose($file); } ?>
- $users = array(<Benutzer hier eintragen>);
- $login_passwort = '<Passwort hier eintragen>';
Abfrage der IP
curl "https://your.domain/dynip.php?pass=PASSWORT&user=USER1"
Setzen der IP
curl "https://your.domain/dynip.php?pass=PASSWORT&user=USER1&myip=9.9.9.9"
Einstellungen in der Fritzbox
- DynDNS-Anbieter: Benutzerdefiniert
- Update-URL: https://your.domain/dynip.php?user=<username>&pass=<pass>&myip=<ipaddr>
- Domainname: fritz.box
- Benutzername: USER1
- Kennwort: PASSWORT