Forum: PC-Programmierung DynDns mit PHP selber programmieren


von Nürnberger (Gast)


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.

: Gesperrt durch Moderator
von Jim M. (turboj)


Lesenswert?

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

von Nürnberger (Gast)


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.

von Stephan S. (sts)


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.

von Nürnberger (Gast)


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.

von bluppdidupp (Gast)


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/)

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Aus dem Netz zusammenkopiertes PHP mit Credentials, Passwortabfragen 
etc. ist immer so eine Sache...

Der Pi könnnte auch lokal seine IP bestimmen, eine Seite bauen und die 
per FTP hochschieben.

von Karl Käfer (Gast)


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

von Nase (Gast)


Lesenswert?

Das ist auch garkein dynamisches DNS sondern nur eine 
HTTP-Weiterleitung.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Frank E. (Firma: Q3) (qualidat)


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 ...

von tk (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Richtiges Dyndns ist übrigens nicht teuer; eine eigene .de-Domain kann
> man mit (mittlerweile) 20 Dyndns-Records für etwa 5€/Jahr bekommen.

Hast du da ne URL?
Danke schon mal!
tk

von Nase (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Frank E. (Firma: Q3) (qualidat)


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 ...

von Nürnberger (Gast)


Lesenswert?

Bei
http://www.axelteichmann.de/DynamicDNS/index-DynDNS-mit-Fritzbox.php
sieht mehrere Varianten des obigen Skripts.

Muss noch sagen, dass ich nicht wollte, dass die Fritzbox sichtbar ist 
(somit fallen Dyndns Freigaben derselbigen weg), sondern nur der R-PI.
Beim obigen Script wird das PW über Plaintext übertragen, ansonsten sehe 
ich keinen Nachteil.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nürnberger schrieb:
> Muss noch sagen, dass ich nicht wollte, dass die Fritzbox sichtbar ist
> (somit fallen Dyndns Freigaben derselbigen weg)

Wieso sollte die Fritzbox "sichtbar" sein, nur weil sie das 
DynDNS-Update-Skript ausführt?

von Nürnberger (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nürnberger schrieb:
> Wenn jemand anders den gleichen Url aufruft

Und warum sollte das jemand tun? Woher sollte dieser jemand Dein 
Passwort etc. haben?

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

von Nürnberger (Gast)


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 ...

von Rufus Τ. F. (rufus) Benutzerseite


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.
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Jede Fritzbox kann kostenfrei AVMs myfritz.net nutzen. Also was soll 
der ganze Stress?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Frank E. schrieb:
> Also was soll der ganze Stress?

Der Stress sollte wohl innerhalb der letzten 5 Jahre bereits abgebaut 
sein. So alt ist jedenfalls der Thread. Ich mache hier mal zu.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.