• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

DynDNS per PHP

blabla333

Mitglied
Ich habe derzeit ein PHP-Script im Einsatz, welches praktisch als DynDNS-"Server" laufen soll. Dabei wird beim Einwählen die aktuelle IP übermittelt. Soweit ist das alles auch gar kein Problem.
Jetzt möchte ich natürlich auch entsprechend per FTP (o.ä.?) auf die IP zugreifen können und dachte eigentlich, dass ich schlicht die hinterlegte IP einlese und dahin weiterleite, so dass ich als FTP-Zugang eben dieses PHP-Script angebe. Aber genau das funktioniert nicht.
Habe ich da einen grundsätzlichen Denkfehler? Leite ich nicht korrekt weiter?

Das Script heißt index.php; die Adresse z.B. website.de/dns/
Entsprechend wollte ich im FTP-Programm als Server website.de/dns/ angeben in der Hoffnung, dass index.php eben auf die hinterlegte IP 123.456.789.0 weiterleitet. Ich will die IP ja eben nicht jedes Mal per Hand eingeben.
 
Dein Gedankenfehler ist das Protokoll, welches Du verwendest. Wenn Du im Browser

Code:
http://www.website.e/dns/

eingibst, wird das PHP-Script über HTTP und somit über den Apache/Webserverdienst auf dem Server aufgerufen. Dadurch wird das PHP-Script geparst. Der Aufruft ist also ausgehend vom Protokoll http -> Apache -> PHP-Parser -> PHP-Script.

Wenn Du dagegen im FTP-Programm die URL eingibst, dann arbeitet das FTP-Programm mit dem FTP-Protokoll. Dieses ruft auf dem Server den dort hinterlegten FTP-Dienst auf, der immer parallel zum Webserver selbst läuft. Dein PHP-Script wird dabei in keinster Weise aufgerufen. Der Aufruf ist also ausgehend vom Protokoll: ftp -> ftp-Dienst.

Was Du willst, kannst Du mit PHP alleine nicht lösen. Wenn Du einen eigenen Server hast, kannst Du versuchen ein Modul für den FTP-Dienst zu finden, welche einen Request weiterleiten kann. Du könntest auch mit einem vorgeschalteten Proxy arbeiten, vlt. sogar mit einer Weiterleitung des FTP-Requests per iptables von ftp (Port 21) auf http (Port 80). Ob das dann aber wirklich funktioniert wäre fraglich. Das einfachste für dich wäre aber, wenn Du einen der bekannten DynDNS-Dienste nutzen würdest ...
 
Ich würde es gerne einfach selbst zusammenbasteln wollen. Ist vielleicht auch nur akademisch :-)
Aber was passiert denn bei einem anderen Anbieter anders? Wenn ich einen Account bei DynDNS habe, dann gebe ich entsprechend auch eine URL an, oder? Ich verstehe nicht so ganz den Unterschied, wie dabei die aktuelle IP übermittelt wird.

Dass bei mir das falsche Protokoll zum Einsatz kommt habe ich verstanden und kann ich auch nachvollziehen, aber der Unterschied zu den anderen Diensten ist mir irgendwie noch nicht so ganz klar. Ich dachte, dass diese im Grunde auch einfach nur die hinterlegte IP ausgeben...
 
Der Unterschied ist, dass andere Anbieter für den DynDNS-Kunden ein Tool bereitstellen was er in seinem eigenen Netzwerk irgendwo installieren muss. Dieses sendet regelmäßig die aktuelle IP des Internetzugangs des Netzwerks zum Anbieter. Dieser hinterlegt diese IP dann in seinen eigenen DNS-Daten zur gebuchten Domain. So hat jeder der die Domain dann aufruft die aktuelle IP dahinter. Mit PHP hat das rein gar nichts zu tun, sondern wenn überhaupt mit DNS.
 
Nabend,

ähnliche Gedanken hatte ich auch schon. PHP wird - wie threadi schon sagt - nur über den Apache angeschmissen, also nur an Port 80 in valid-HTTP.

Was du machen könntest wäre aber etwa, die IP beim Aufruf des PHP-Scripts einfach Anzeigen zu lassen und per Hand zu kopieren. Ein bisschen komfortabler noch ist solch eine Umleitungslösung:
PHP:
$dyn_ip = xxx.xxx.xxx.xxx;

switch($_GET['protocol']){
    case 'ftp': header('Location: ftp://user:pwd@'.$dyn_ip); break;
    case 'svn': header('Location: svn://user:pwd@'.$dyn_ip.'/repository'); break;
    // ...
}
Aufruf von example.com/?protocol=ftp würde aufs FTP-Protokoll weiterleiten.

Ich glaube manche Browser fragen nach einem Programm, das sie öffnen sollen, wenn sie nicht wissen wie mit dem Protokoll umzugehen ist. Wenn nicht, kannst du die Adresse immer noch aus der Adresszeile kopieren.
 
Zurück
Oben