Einzelnen Beitrag anzeigen
  #1  
Alt 26.02.2016, 15:08:36
TimRear TimRear ist offline
Anfänger
 
Registriert seit: Feb 2016
Alter: 40
Beiträge: 2
Benutzerauthentifizierung

Hallo zusammen,

ich habe ein hoffentlich nicht zu aufwändiges Anliegen bezüglich eines PHP Scripts. Da ich nicht gerade die große Ahnung davon habe, frage ich mal in die Runde der Fachleute und bedanke mich bereits jetzt sehr für Eure/Deine Unterstützung!!!!

Es geht um eine Art Dyndns script - welches auch grundsätzlich funktioniert.
greift man beispielsweise auf "index.php?hostname=dyndns1.domain.tld" zu, wird die IP für den Hostname aktualisiert. Ich benötige jedoch mehrere Hostnames, welche mit unterschiedlichen Benutzernamen/Kennwörtern (oder einfacher ein Zugangstoken) aktualisiert werden können. Wie würdet Ihr das machen?

.htaccess ist für mich keine Lösung, da nicht jeder Benutzer jede Domain aktualisieren dürfen soll, sondern lediglich seine Eigene.

Hier das Script:
PHP-Code:
<?php

include 'mysql_config.php';

$dynDomains = array('dyndns1.domain.tld''dyndns2.domain.tld');

$newIP $_SERVER['REMOTE_ADDR'];
$DoUpdateFile "updatefile/doupdate";

if(!isset(
$_GET['hostname'])){
    die(
'Parameter "hostname" nicht gesetzt - Ihre WAN IP lautet:'.$newIP);
}
// Check if the requested domain is in our list of domains we want to keep updated.
if(! in_array($_GET['hostname'], $dynDomains)){
    die(
'Der angeforderte "hostname" wurde nicht für DynDNS freigegeben.');
}

// Check if IP is really an IP (should always be the case, but just to be safe...)
if($newIP == "" || !preg_match_all("/(\d{1,3}\.){3}\d{1,3}/"$newIP$matches )){
    die();    
}    

// We need to append a dot (.) to the end of the requested domain
$dyndns $_GET['hostname'] . '.';

$query "SELECT id, val FROM dns_recs WHERE host = '$dyndns' AND type = 'A';";

$result mysql_query($query);
$row mysql_fetch_assoc($result);

$rowId $row['id'];
$oldIP $row['val'];

if(
$oldIP == $newIP){
    echo 
"nochg\n".$newIP;
    die();
}

// Update IP
$updateQuery "UPDATE dns_recs SET val = '$newIP', displayVal = '$newIP' WHERE id = $rowId;";

$updated mysql_query($updateQuery ) or die (mysql_error());

$updateDomain $_GET['hostname'] . ";";
# Create do-update file to notice cron job to update the DNS entry
file_put_contents($DoUpdateFile$updateDomainFILE_APPEND);

echo 
"good\n".$newIP;

?>
Vielen Dank für Eure Denkansätze!
Mit Zitat antworten