Esempio n. 1
0
<?php

$domain = "userhost.ffbin";
include "inc/functions.inc";
$hostdb = new HostDB();
$zone = new DDnsZone($domain);
$countquery = "SELECT COUNT(*) FROM hosts WHERE last_seen < DATETIME('now','localtime','-1 day')";
$countresult = $hostdb->query($countquery);
$count = $countresult->fetchArray(SQLITE3_NUM);
if ($count[0] > 0) {
    $query = "SELECT * FROM hosts WHERE last_seen < DATETIME('now','-1 day')";
    $result = $hostdb->query($query);
    while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
        $zone->remove_host($row['hostname']);
        $hostdb->remove_host($row['hostname']);
        syslog(LOG_INFO, "Removed expired host " . $row['hostname'] . " from domain {$domain}");
    }
} else {
    syslog(LOG_INFO, "There are no expired hosts to remove from domain {$domain}");
}
Esempio n. 2
0
<?php

$domain = "userhost.ffbin";
include 'inc/functions.inc';
//GET Request
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    // Show form and infotext
    $infotext = "\n\t<h2>Registrieren eines Hostnamens</h2>\n\n\t<p>Du kannst Dir hier einen Hostnamen in der Domain \"{$domain}\" reservieren.</p>\n\n\t<p>Die Reservierung erfolgt jeweils f&uuml;r die Dauer von 24h. Wenn der von Dir gew&uuml;nschte Eintrag noch frei ist, bekommst Du ein \n\n\tToken. Um den Namen dauerhaft zu nutzen, muss Dein Host mit diesem Token die Reservierung mindestens alle 24h erneuern.</p>\n\n\t<p><b>Wenn Du dieses Token verlierst oder vergisst, verweist der Name bis zum Ablauf der Verfallsfrist auf die zuletzt eingetragene IP und Du musst ihn erneut registrieren.</b></p>\t";
    $form = "\n\t<p>Gew&uuml;schter Hostname:</p>\n\t<form method=\"POST\" action=\"index.php\">\n\t<p><i>Zul&auml;ssige Eingaben: Zahl, Buchstabe, Bindestrich</i></p>\n\t<p><input name=\"hostname\" type=\"text\" size=\"32\" / > .{$domain}</p>\n\t<p><button type=\"submit\">reservieren</button></p>\n\t</form>\n\t";
    $content = $infotext . "\n" . $form;
    //POST Request
} else {
    // valid hostname given
    if (!empty($_POST["hostname"]) && preg_match("/^[a-zA-Z0-9-]+\$/", $_POST["hostname"])) {
        $hostdb = new HostDB();
        $hostname = strtolower($_POST["hostname"]);
        if ($hostdb->hostname_exists($hostname)) {
            $content = "<p><b>Der Hostname '{$hostname}.{$domain}' ist bereits vergeben!</b></p>\n";
            $content .= "<p><a href=\"index.php\">zur&uuml;ck</a></p>";
        } else {
            $remoteip = $_SERVER['REMOTE_ADDR'];
            $token = $hostdb->register_hostname($hostname, $remoteip);
            if ($token && update_bind($hostname, $remoteip)) {
                syslog(LOG_INFO, "Hostname '{$hostname}.{$domain}' reserved for IP '{$remoteip}'");
                $content = "<h2>Der Hostname '{$hostname}.{$domain}' wurde reserviert.</h2> ";
                $content .= "<p>Aktuell ist der host mit der IP '" . $_SERVER['REMOTE_ADDR'] . "' eingetragen.</p>\n";
                $content .= "<br /><p>Host-Token: <b>{$token}</b></p><br />";
                $content .= "<p>Um die Reservierung aufrechtzuerhalten, muss der Host '{$hostname}.{$domain}'\n";
                $content .= "mindestend einmal alle 24h mit dem Aufruf folgender URL einchecken:</p>";
                $updateurl = "https://register.userhost.ffbin/checkin.php?hostname={$hostname}&token={$token}";
                $content .= "<p><a href=\"{$updateurl}\">{$updateurl}</a></p>";