DynDns mit PHP selber programmieren

Gast #4060568
Lesenswert?

Im Internet habe ich ein php-Skript schon gefunden:
1
<?
2
$pwort = 'xyz';
3
$dyntxt = "ip.txt";
4
$port = "";
5
$pwortcontrol = $_GET["pass"];
6
$IP = $_GET["meineip"];
7
$FW = $_GET["FW"];
8

9
if (file_exists($dyntxt)) {
10
  if ($pwortcontrol==$pwort) {  
11
    $a = fopen("$dyntxt", "w");
12
    fwrite($a, $IP);
13
    fclose($a); 
14
  }
15
  else {
16
    $a = fopen("$dyntxt", "r+"); 
17
    $dynip = fread($a,filesize($dyntxt));
18
    fclose($a);  
19
    if ($FW == 1) $url="https://".$dynip;     
20
    else $url="http://".$dynip."".$port; 
21
    header("Location: $url");
22
  }
23
}
24
?>

Bereits auf einen php-fähigen kostenloser Webserver geladen 
(hostinger.de) und funktioniert.
Ich will das für einen Webserver benutzen, der auf einem Raspberry PI 
läuft und mit einer Fritzbox verbunden ist.

Aber man muss die aktuelle IP der Fritzbox wissen und dann auf 
hostiger.de hochladen.
Dann wird man automatisch auf den Raspberry Webserver verzweigt.

Wie könnte man das Updaten der aktuellen Fritzbox-IP automatisieren?

Ein Dämon auf dem R-PI könnte periodisch die Statusseite der Fritzbox 
holen mit
1
wget http://192.168.178.1/logincheck.lua
daraufhin den Inhalt parsen und die aktuelle IP rausfinden.
Wenn sich diese ändert, dann diese mit wget zum hostinger.de - Webserver 
melden, damit dieser richtig umleitet.

Gibt es vielleicht schon fertige Lösungen?
Ich weiß, das Fritz seine eigenen Produkte anbietet, aber ich suche nach 
allgemeinen freien Lösungen.
Gast #4060603
Lesenswert?

Jim Meba schrieb:
> Dir ist schon klar, dass die anfragene IP Addresse normalerweise in
> $_SERVER['REMOTE_ADDR'] drin ist?

Ja, und?
Ich will von einem fremden Rechner auf meinen Raspberry-Webserver via 
hostinger.de (oder anderen Anbieter).
Die Adresse dieses fremden Rechners (z.B. Internet-Cafe) interessiert 
mich nicht.
#4060617
Lesenswert?

Statt etwas zu parsen und das ganze komplizierter zu machen als nötig:

Den RPi in Intervallen das "DynIP"-Script aufrufen lassen, das Script 
checkt die anfragende IP (inkl. der weiteren Credentials) und schreibt 
diese, sofern es eine andere ist, in die txt-Datei ...

Das wäre auf der jetzigen Schiene wohl die einfachste Lösung.
Gast #4060628
Lesenswert?

Richtig. Jetzt habe ich das endlich kapiert mit dem 
$_SERVER['REMOTE_ADDR'] statement.
Der R-PI schickt dem hostinger.de irgendwas hin, dann kann der 
hostinger-Webserver mit $_SERVER['REMOTE_ADDR'] die IP der Fritzbox 
ermitteln.
Gast #4060630
Lesenswert?

Nürnberger schrieb:
> Die Adresse dieses fremden Rechners (z.B. Internet-Cafe) interessiert
> mich nicht.

...aber der RPi wird doch bestimmt im Netz der Fritzbox liegen?

RPi ruft auf: 
http://dingenskirchen.hostinger.de/merkaktuelleip.php?key=1234
...die merkaktuelleip.php hat in $_SERVER['REMOTE_ADDR'] dann die IP 
über die die Fritzbox von außen erreichbar ist stehen und kann die sich 
irgendwie merken.
"key" hat den Zweck, das nicht ggf. hinz und kunz die 
"merkmaktuelleip.php" einfach so aufrufen können, sondern den key wissen 
müssten.


---
(Je nach Version der Fritzbox könnte man natürlich auch einfach AVMs 
myfritz nutzen: 
http://blog.netplanet.org/2013/07/27/myfritz-als-dyndns-ersatz-fuer-die-fritzbox/)
Gast #4060758
Lesenswert?

Hi,

Nürnberger schrieb:
> Im Internet habe ich ein php-Skript schon gefunden:
> Bereits auf einen php-fähigen kostenloser Webserver geladen
> (hostinger.de) und funktioniert.
> Ich will das für einen Webserver benutzen, der auf einem Raspberry PI
> läuft und mit einer Fritzbox verbunden ist.
>
> Aber man muss die aktuelle IP der Fritzbox wissen und dann auf
> hostiger.de hochladen.
> Dann wird man automatisch auf den Raspberry Webserver verzweigt.

Würde es dazu nicht völlig ausreichen, wenn Deine Fritzbox oder der RPi 
einen DynDNS-Dienst updaten und Du dann auf den DynDNS-Hostnamen linken 
würdest?

Am Rande bemerkt: wenn Du Dir solche Skripte zusammenkopieren mußt, ist 
es möglicherweise keine gute Idee, Deinen Pi im Internet zu exponieren. 
Zudem ist dieses PHP-Skript der allerletzte Müll.

HRH,
Karl
Persönliche Seite #4060825
Lesenswert?

bluppdidupp schrieb:
> RPi ruft auf:
> http://dingenskirchen.hostinger.de/merkaktuelleip.php?key=1234
> ...die merkaktuelleip.php hat in $_SERVER['REMOTE_ADDR'] dann die IP
> über die die Fritzbox von außen erreichbar ist stehen und kann die sich
> irgendwie merken.
> "key" hat den Zweck, das nicht ggf. hinz und kunz die
> "merkmaktuelleip.php" einfach so aufrufen können, sondern den key wissen
> müssten.

Das muss nicht der Pi machen, das kann genausogut die Fritzbox selber. 
Bei den dyndns-Einstellungen gibt es auch eine benutzerdefinierte, bei 
der die Update-URL frei gewählt werden kann.
Vorteil: Das geschieht nur, wenn auch wirklich nötig, sprich, wenn sich 
die IP-Adresse geändert hat.

Der Fritzbox ist es egal, ob sich hinter der Update-URL ein echter 
dyndns-Dienst verbirgt oder irgendwas selbstgefrickeltes.

Richtiges Dyndns ist übrigens nicht teuer; eine eigene .de-Domain kann 
man mit (mittlerweile) 20 Dyndns-Records für etwa 5€/Jahr bekommen.
(Firma: Q3) #4060834
Lesenswert?

Bei einem "echten" Dyndns-Dienst muss man sich nicht auf einen Port 
festlegen, es funktionieren alle Protokolle - sofern sie dann vom Router 
geforwardet werden. Bei diesen selbstgestrickten Lösungen ist das nicht 
so, man muss jeden benötigten Port extra ausprogrammieren ...
Gast #4060865
Lesenswert?

Frank Esselbach schrieb:
> Bei einem "echten" Dyndns-Dienst muss man sich nicht auf einen Port
> festlegen, es funktionieren alle Protokolle - sofern sie dann vom Router
> geforwardet werden. Bei diesen selbstgestrickten Lösungen ist das nicht
> so, man muss jeden benötigten Port extra ausprogrammieren ...

Das Problem daran ist, dass es so einfach nur mit HTTP funktioniert. 
Denn der "Location"-Header ist ein HTTP-Feature.
Es ist halt keine echte Domäne, sondern nur eine Weiterleitung.

Alles, was nicht HTTP ist, lässt sich damit halt nicht weiterleiten. 
Eine einfache einlaufende TCP-Verbindung wird halt den öffentlichen Host 
auflösen und dann dort ins Leere laufen, ohne von diesem PHP-Frickel 
auch nur irgendwas zu sehen.
Persönliche Seite #4060950
Lesenswert?

tk schrieb:
> Hast du da ne URL?

Das gibts z.B. bei der schweizer Firma Joker.com.

Das erste Jahr kostet 6.30, die Verlängerung 5.30. Im Moment gibt es 
aber eine Sonderaktion, da wird das erste Jahr günstiger.

Die Anzahl der nutzbaren DynDNS-Records wurde in letzter Zeit von 5 auf 
20 erhöht. Ansonsten hat man vollen Zugriff auf die üblichen Records 
eines Nameservers, d.h. man kann sich auch seinen eigenen mx-Record 
einrichten, um Email abzuwickeln.

Ich bin mir sicher, daß es das auch bei anderen Dienstleistern gibt.
(Firma: Q3) #4061726
Lesenswert?

Da viele (nicht alle) Internet-User eine Fritzbox nutzen, möchte ich 
nochmal auf myfritz.net hinweisen. Man liest zwar immer mal wieder, dass 
die Server Störungen haben, da ich diesen Dienst aber nicht wirklich 
jeden Tag nutze, ist mir dies bisher nicht negativ aufgefallen.

Ausserdem: Einem geschenkten Barsch guckt man nicht in den ...
Gast #4062204
Lesenswert?

Das Fritzbox-Update Skript hat ein anderes Problem:

man trägt eine (statische) Url (mit PW) ein.
Wenn jemand anders den gleichen Url aufruft, dann ist der PI viele 
Stunden offline, bis die Fritzbox um ca. 3:00am ihre neue IP meldet an 
den öffentl. Webserver.

Mit einer Bastel-Lösung könnte man das umgehen:
Das PHP Skript im öff. Server bekommt ein Array von 3652 Passwörtern 
(automatisch generiert), das Update-Script im PI die gleiche Liste.
Ein PW ist nur einmal gültig. Die Liste reicht für 10 Jahre.
Gast #4062299
Lesenswert?

Warum sollte mir jemand SPAM-Mails schreiben und versuchen den Computer 
zu hacken?
Zugegeben, der PI ist kein brauchbares Opfer, aber das wissen ja Hacker 
ja nicht.

Ich denke, wenn regelmässig Passwörter unverschlüsselt übertragen 
werden, geraten sie irgendwann in falsche Hände.

> Das Problem liegt hier dann doch wohl an einer komplett anderen Stelle.

Das verstehe ich jetzt nicht ...
Persönliche Seite #4062328
Lesenswert?

Nürnberger schrieb:
> Ich denke, wenn regelmässig Passwörter unverschlüsselt übertragen
> werden, geraten sie irgendwann in falsche Hände.

Dann würde das gesamte DynDNS-Konzept nicht funktionieren, das 
hunderttausendfach genutzt wird.

Hast Du schon mal irgendwelche ernstzunehmenden Berichte über Störungen 
von DynDNS-Diensten wegen Passwort-Attacken gehört?

Obendrein: Es gibt auch die Möglichkeit, ssl (https) für Update-URLs zu 
verwenden - damit ist das Passwort verschlüsselt.
Beitrag #6183367 wurde von einem Moderator gelöscht.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.