Internet und Hostinglösungen
Thread gesperrt
Nein
Thread gepinnt
Nein

  • BaLLi2512
  • Profilbild
    Status
    Offline
    Registriert
    05.06.2014
    Letzer Besuch
    07.02.2017
    Vorname
    Maik
    Nachname
    Ballichar
    Beiträge
    45
    Positiv
    0
    Negativ
    0

Script zum IP updaten 2.12.2015 um 22:04 Uhr

Hallo Gemeinde

Ich würde gern ein von mir geschriebenen Script mit euch teilen. Ich habe ihn mir geschrieben, um meine Homeip auf den 4b42-Server zu übertragen um mein DynDNS korrekt nutzen zu können.

Ich hab mir dazu eine Datei mit folgendem Inhalt angelegt:

nano /usr/local/bin/ipcheck.sh

#!/bin/bash
wget http://dyndns.4b42.com -O /tmp/aktuelleip.txt -o /dev/null
diff /tmp/aktuelleip.txt /etc/oldip.txt > /dev/null 2>&1
if [ "$?" -eq 0 ]
then
rm /tmp/aktuelleip.txt
exit
else
/usr/bin/wget -q http://USERNAME:PASSWORD@dyndns.4b42.com/nic/update?hostname=DOMAIN --output-document=/tmp/dyndns.log
mv /tmp/aktuelleip.txt /etc/oldip.txt
fi

UNBEDINGT DEN SCRIPT AN DIE EIGENEN BEDÜRFNISSE ANPASSEN!!!

Hier passiert nichts anderes, als das der Script schaut, ob sich die IP zwischen den Ausführungen geändert hat. Falls ja (und bei der ersten Ausführung), wird der Script zum updaten der IP auf dem Nameserver ausgeführt. Wenn sich nicht geändert hat, dann passiert auch nichts :)

Damit das ganze auch dann regelmäßig ausgeführt werden kann, macht die Datei ausführbar und erstellt noch einen Cronjob mit folgenden Inhalt:

chmod +x /usr/local/bin/ipcheck.sh && crontab -e

*/15 * * * * /usr/local/bin/ipcheck.sh

So wird alle 15min der Script ausgeführt und ggf. die IP geupdatet.
Ich hoffe dem ein oder anderen hilft es ;)


Gruß

Maik
  • codereaders
  • Profilbild
    Status
    Offline
    Registriert
    09.03.2012
    Letzer Besuch
    26.08.2016
    Beiträge
    83
    Positiv
    0
    Negativ
    0

Script zum IP updaten 4.12.2015 um 21:14 Uhr

Man bedenke, dass USERNAME, PASSWORD und DOMAIN ersetzt werden müssen.
Die Daten könntest du noch als Variablen ein wenig weiter nach oben ziehen.

Die Methode die IP über eine Webseite zu beziehen halte ich für ein wenig unelegant, aber gut.

Zusätzlich sei gesagt, dass der Service nur benötigt wird, wenn sich die IP des in Frage kommenden Gerätes tatsächlich ändert.
Bei einem hier gemieteten VPS sollte das nicht der Fall sein. Eher bei Servern/ Diensten, die lokal laufen.
  • BaLLi2512
  • Profilbild
    Status
    Offline
    Registriert
    05.06.2014
    Letzer Besuch
    07.02.2017
    Vorname
    Maik
    Nachname
    Ballichar
    Beiträge
    45
    Positiv
    0
    Negativ
    0

Script zum IP updaten 5.12.2015 um 18:09 Uhr

Ja ok, das stimmt. Username, Passwort und Domain könnte man als Variablen nach oben setzen. Das stimmt.
Ich persönlich hab das bei der Erstellung nicht für nötig gehalten :D
Selbstverständlich mach das ganze nur dann Sinn, wenn die IP durch den ISP durch die bekannte 24h Trennung neu vergeben wird. Bei Servern nich von Nöten, das ist richtig :)
Jedenfalls danke für den Input. Werde das mit den Variablen noch hinzufügen :)


Gruß

Maik
  • codereaders
  • Profilbild
    Status
    Offline
    Registriert
    09.03.2012
    Letzer Besuch
    26.08.2016
    Beiträge
    83
    Positiv
    0
    Negativ
    0

Script zum IP updaten 5.12.2015 um 20:48 Uhr

Eventuell könntest du das Script dann auch gleich so variabel halten, dass man es für verschiedene Anbieter mit mehrere Accounts und mehreren Domains verwenden kann. In Shellprogrammierung bin ich nicht so firm, aber eine Struktur könnte etwa so aussehen:

Die Struktur kann mehrere Tupel die jeweils einen Anbieter repräsentieren, enthalten.
Für jeden Anbieter wird erfasst, ob eine http- nötig oder eine https-Verbindung möglich ist, was durch ssl gekennzeichnet wird, außerdem wird natürlich die Domain und der Requestpfad erfasst, sowie einem Tupel, welches einen oder mehrere Accounts für den Anbieter enthält. Jeder Account wiederum ist ebenfalls ein Tupel, welches aus einem Benutzernamen, einem Passwort und wiederum einem Tupel besteht, welches eine oder mehrere Domains enthält.

Beim Abarbeiten sollte dann ungefähr folgendes passieren, die fehlenden Stellen habe ich mal im Pseudocode-Stil aufgefüllt:

#!/bin/bash
wget http://dyndns.4b42.com -O /tmp/aktuelleip.txt -o /dev/null
diff /tmp/aktuelleip.txt /etc/oldip.txt > /dev/null 2>&1
if [ "$?" -eq 0 ]
then
rm /tmp/aktuelleip.txt
exit
# nach exit sollte sowieso Schluss sein
else

für jeden Eintrag in der Struktur als "Anbieter"
für jeden Account in der Struktur als "Account"
baue die TeilURL als: http + ssl + := + uname + : + password + @ + anbieter + =
für die erste Domain
baue die URL als TeilURL + domain
für jede weitere Domain
baue die URL als URL + , + domain
wget -q URL --output-document=/tmp/ddnsUpdate_anbieter.txt

mv /tmp/aktuelleip.txt /etc/oldip.txt

fi

Schnell Antwort 23.2.2017 um 08:13 Uhr

Sie sind nicht eingeloggt! Um diese Seite sehen zu können sollten Sie sich mit Ihrem Benutzernamen und Passwort anmelden. Sollten Sie noch kein Benutzerkonto besitzen, können Sie sich ein kostenloses Konto erstellen.