Forum: PC-Programmierung DynDNS Updater selber programmieren


von Robby (Gast)


Lesenswert?

Hallo,
ich möchte ein Programm für meinen Raspberry Pi schreiben, das 
automatisch (z.B. jede Stunde) die IP meines Routers beim DynDNS Service 
meldet. Als DynDNS Service verwende ich übrigens selfhost.eu.
So Soll der Pi dann immer von außer übers Internet erreichbar sein.

Allerdings weiß ich nicht genau, wie ich das angehen soll... Bei 
selfhost finde ich auf Anhieb keine Doku zu dem Thema.
Geht das über einfache HTTP Requests? Wie könnte sowas aussehen?

Danke!

von TestX .. (xaos)


Lesenswert?

Google kaputt ?

1. Erstmal rausfinden welche update Protokolle selfhost unterstützt
2. Doku zum Protokoll raussuchen
3. Implementieren..

von ...-. (Gast)


Lesenswert?

schau mal bei freedns.afraid.org, da ist dyndns kostenlos. Es gibt 
verschioedene Clients, man kann das aber auch z.B. in die crontab 
einfügen, so habe ich meine Netze (auch einen raspberry) ins Netz 
gebracht

von lol (Gast)


Lesenswert?

Steht doch alles bei Selfhost:

Frage: Was ist eine Update URL (Authentifizierung per GET)? (306843 
Hits) ...

(http://cms.selfhost.de/cgi-bin/selfhost?p=faq&show=59)

Oder noch einfacher:

http://cms.selfhost.de/cgi-bin/selfhost?p=cms&article=download

von ...-. (Gast)


Lesenswert?

also eine Zeile in die crontab:

0   * * root  wget -O - 
https://carol.selfhost.de/update?username=[Dyn-Account]&password=[Password] 
2>&1 &

macht immer zur vollen Stunde ein Update der IP-Nr., [Dyn-Account] und 
[Password] musst Du natürlich anpassen

von ...-. (Gast)


Lesenswert?

uuups, da sind ein paar * verschwunden, es müssen nicht 2 * sein, 
sondern 4 * (getrennt durch ein Blank), also

0   * * root  wget ...

von ...-. (Gast)


Lesenswert?

huch, schon wieder, das schient die Forensoftware zu sein, letzter 
versuch:
1
0 * * * * root  wget ...

von ...-. (Gast)


Lesenswert?

:)

von Borislav B. (boris_b)


Lesenswert?

...-. schrieb:
> :)

Ich versteh nur Sternchen ;-)  Crontab lese ich zum ersten mal...

von ...-. (Gast)


Lesenswert?

Linuxxer kennen die Datei /etc/crontab, damit kann man automatisiert 
Programme zu bestimmten Zeiten starten, siehe 
http://wiki.ubuntuusers.de/Cron, die crontab in /etc/crontab ist 
systemweit gültig. Für Dich ist also der Abschnitt "Die systemweite 
Cron-Tabelle /etc/crontab" wichtig.

Das geht auch auf dem Raspberry, bei mir wird die IP-Nr. alle 5 Minuten 
aufgefrischt (beginnend mit Minute 1), meine crontab sieht so aus (meine 
Zugangsdaten zu freedns.afraid.org habe ich mit xxx überschrieben)

1
# /etc/crontab: system-wide crontab
2
# Unlike any other crontab you don't have to run the `crontab'
3
# command to install the new version when you edit this file
4
# and files in /etc/cron.d. These files also have username fields,
5
# that none of the other crontabs do.
6
7
SHELL=/bin/sh
8
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
9
10
# m h   dom mon dow user        command
11
1,6,11,16,21,26,31,36,41,46,51,56 * * * * root  wget -O - http://freedns.afraid.org/dynamic/update.php?xxxxxxxxxxxxxxx 2>&1 &
12
17 *    *   *   *   root        cd / && run-parts --report /etc/cron.hourly
13
25 6    *   *   *   root        test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
14
47 6    *   *   7   root        test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
15
52 6    1   *   *   root        test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
16
#

Die Spalten bedeuten folgendes (getrennt durch mindestens 1 Leerzeichen 
oder <tab>)

m = Minute
h = Stunde
dom = day of month
dow = day of week
user = benutzername, unter dem command gestartet wird
command = Befehl, der abgearbeitet wird

von Borislav B. (boris_b)


Lesenswert?

Wow, danke für die Erklärung. Das klingt ja praktisch :-)

Aber was genau soll denn als Dyn-Account benutzt werden? Da werde ich 
aus der Hilfe von Selfhost nicht ganz schlau...

> Achtung, der Username ist nicht Ihre Kundennummer, sondern die Daten welche
> Sie unter DynAccounten Details finden.

Egal was ich da benutze, ich bekomme immer ein "badauth".

Und noch eine zweite Frage: meine IP muss ich ja nicht angeben. Ich 
vermute mal selfhost nimmt dann einfach die, von der der HTTP-Request 
kam?

von Frank (Gast)


Lesenswert?

Da sicher auch der PI nicht direkt am Internet hängt, kann man den 
DynDNS-Prozess auch dem Router überlassen.

Habe gerade heute zufällig drei mal ein kostenloses "myfritz"-Konto 
eingerichtet. Da doch recht viele Internetuser eine Fritzbox haben, ist 
damit sicher vielen geholfen.

Nachdem man sich angemeldet und einmal eingeloggt hat, muss man aus der 
URL einen Teil extrahieren, dieser weist dann immer auf die heimische 
Fritzbox.

Beispiel gesamt-URL: https://xbyr9mblcxy12zj6f.myfritz.net/myfritz#stay

Wenn man daraus den Teil ausschneidet: xbyr9mblcxy12zj6f.myfritz.net

... so ist man immer "Zuhause"!

von ...-. (Gast)


Lesenswert?

> Aber was genau soll denn als Dyn-Account benutzt werden? Da werde ich
> aus der Hilfe von Selfhost nicht ganz schlau...

Das kann ich Dir nicht sagen, da ich kein selfhost-Kunde bin. Die IP-Nr. 
holt sich selfhost wohl selbst.

von Borislav B. (boris_b)


Lesenswert?

Frank schrieb:
> Da sicher auch der PI nicht direkt am Internet hängt, kann man den
> DynDNS-Prozess auch dem Router überlassen.

Mein Router beherrscht das leider nicht :-(

...-. schrieb:
> Das kann ich Dir nicht sagen, da ich kein selfhost-Kunde bin.

Gibt es denn hier einen, der es weiß? ;-)

Danke so  weit!

von Borislav B. (boris_b)


Lesenswert?

OK, ich hab's. Für das DynDNS gibt es nochmal extra Zugangsdaten. Die 
sind in der DyDNS Sektion von Selfhost unter "Details" zu finden.

Jetzt nur noch mal schauen, obs auch mit dem Cron klappt...
(hier gibt es ein Gnome-Tool, mit dem man das auch per GUI konfigurieren 
kann. Für Noobs wie mich vielleicht besser als das File von hand zu 
editieren) ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.