mikrocontroller.net

Forum: PC-Programmierung DynDns mit PHP selber programmieren


Autor: Nürnberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Internet habe ich ein php-Skript schon gefunden:
<?
$pwort = 'xyz';
$dyntxt = "ip.txt";
$port = "";
$pwortcontrol = $_GET["pass"];
$IP = $_GET["meineip"];
$FW = $_GET["FW"];

if (file_exists($dyntxt)) {
  if ($pwortcontrol==$pwort) {  
    $a = fopen("$dyntxt", "w");
    fwrite($a, $IP);
    fclose($a); 
  }
  else {
    $a = fopen("$dyntxt", "r+"); 
    $dynip = fread($a,filesize($dyntxt));
    fclose($a);  
    if ($FW == 1) $url="https://".$dynip;     
    else $url="http://".$dynip."".$port; 
    header("Location: $url");
  }
}
?> 

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

Autor: Jim Meba (turboj)
Datum:

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

Autor: Nürnberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stephan S. (sts)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Nürnberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: bluppdidupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....
...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-d...)

Autor: Tom (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Käfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nase (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist auch garkein dynamisches DNS sondern nur eine 
HTTP-Weiterleitung.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bluppdidupp schrieb:
> RPi ruft auf:
> http://dingenskirchen.hostinger.de/merkaktuelleip....
> ...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.

Autor: Frank Esselbach (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: tk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nase (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Frank Esselbach (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Nürnberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei
http://www.axelteichmann.de/DynamicDNS/index-DynDN...
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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Nürnberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Nürnberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.