<?php

  // begin config
  $hosts = array(
    'tecneeq'   => 'secret1',
    'host2' => 'secret2',
    'host3' => 'secret3'
  );
  $dnszone = "cybercowboy.de";
  $dnsserver = "127.0.0.1";
  // end config


  if (isset($_SERVER['REMOTE_ADDR'])) {
    $ip = $_SERVER['REMOTE_ADDR'];
  } else {
    echo "REMOTE_ADDR: not set.\n";
    exit;
  }

  if (isset($_GET['host'])) {
    $host = $_GET['host'];
  } else {
    echo "GET: host not set.\n";
    exit;
  }

  if (isset($_GET['pass'])) {
    $pass = $_GET['pass'];
  } else {
    echo "GET: pass not set.\n";
    exit;
  }

  if ($hosts[$host] != $pass) { 
    echo "AUTH: Not authorized.\n";
    exit;
  }

  $oldip = trim(`host $host.$dnszone $dnsserver | cut -d ' ' -f 4`);
  if ($ip == $oldip) {
    echo "IP unchanged: new ip is $ip, old ip is $oldip.\n";
    exit;
  } else {
    $nsucmd = "server $dnsserver\nzone $dnszone\nupdate delete $host.$dnszone A\nupdate add $host.$dnszone 180 A $ip\nsend";
    shell_exec("/bin/echo -e '". $nsucmd ."' | sudo /usr/bin/nsupdate -k /etc/dyndns.key");
    echo "Old ip $oldip gets replaced by new ip $ip. Update on NS-Slaves takes no longer than 10 minutes.\n";
  }

?>
