PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wer kann helfen ?



Mr.Richi
07-05-2011, 22:26
Ich hoffe mir kann jemand helfen.

Ich kenne mich mit Scripten oder Shell Programierung absolut nicht aus und brauche eure Hilfe.

Ich habe ein Linksys WRT54GL mit DD-WRT.

Dort habe ich ein Script um ein Dyndns update zu machen (einen zweiten dyndns Benutzer zur Sicherheit).
Ab jetzt möchte ich gerne mein No-IP.org damit updaten (pc läuft keiner), leider komme ich absolut nicht weiter mit der Programierung :(

Kurz gesagt, ich benötige ein Script / Programierung wo zum einen z.b. hier http://checkip.two-dns.de/ ein WAN IP check gemacht wird.
Dann muss diese WAN-IP bei NO-IP aktualiesiert werden.

Dieses geht manuell mit diesem Link:
https://dynupdate.no-ip.com/dns?username=XXXX&password=XXXX&hostname=XXXXX

Das ganze lasse ich dann mit einem Crone Job über den Router ausführen, das ist kein Ding.

Zur Hilfe mal hier mein jetziges Script wo mit dyndns aktualiesiert wird:



#!/bin/sh
USERNAME=XXX
PASSWORD=XXX
DYNHOST=XXX
FORCEUPDATE=10
IPFILE=/tmp/dyndns.ip
LOGFILE=/tmp/dyndns.log
LASTUPDATE=/tmp/dyndns.lastupdate

DATE=`date +%s`
LASTDATE=$((`cat $LASTUPDATE`))
DATEEXPIRE=`expr $LASTDATE + $((86400 * $FORCEUPDATE))`

OLDIP=`cat $IPFILE`
wget -q -O - http://checkip.two-dns.de/ | sed -e "s#^[^0-9]\+\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)[^0-9]\+...\$#\1#g" > $IPFILE IP=`cat /tmp/dyndns.ip`

if [ "$DATE" -ge "$DATEEXPIRE" ]
then
# Zeit f&#-4;r das Zwangs Update
wget -q -O $LOGFILE http://$USERNAME:$PASSWORD@members.dyndns.org/nic/update?hostname=$DYNHOST&myip=$IP date +%s > $LASTUPDATE
elif [ "$OLDIP" != "$IP" ]
then
# IP hat sich ge&#-28;ndert also Updaten
wget -q -O $LOGFILE http://$USERNAME:$PASSWORD@members.dyndns.org/nic/update?hostname=$DYNHOST&myip=$IP date +%s > $LASTUPDATE
fi

Das Script ist aber zu aufwendig (aber funktioniert), das überprüft ob die IP anders ist und Aktualiesiert erst dann.
Das brauch ich alles nicht. Die IP soll egal was ist aktualiesiert werden.

Kurz gesagt, der Link:
https://dynupdate.no-ip.com/dns?username=XXXX&password=XXXX&hostname=XXXXX
muss per script wenn der Crone Job es sagt einfach ausgeführt werden.

Ich hoffe mir kann jemand helfen ??

John W
16-05-2011, 07:43
Allgemein verbessert und sollte so funktionieren:


#!/bin/sh
USERNAME=XXX
PASSWORD=XXX
DYNHOST=XXX
FORCEUPDATE=10
IPFILE=/tmp/dyndns.ip
LOGFILE=/tmp/dyndns.log
LASTUPDATE=/tmp/dyndns.lastupdate

DATE="$(date +%s)"
LASTDATE="$(cat "$LASTUPDATE")"
DATEEXPIRE="$(expr "$LASTDATE" + $((86400 * $FORCEUPDATE)))"

OLDIP="$(cat "$IPFILE")"
wget -q -O - http://checkip.two-dns.de/ | grep -Eo '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' > "$IPFILE"
IP="$(cat "$IPFILE")"

if [ "$DATE" -ge "$DATEEXPIRE" -o "$OLDIP" != "$IP" ]
then
# Zeit für das Zwangs Update oder IP geändert
wget -q -O "$LOGFILE" "http://$USERNAME:$PASSWORD@members.dyndns.org/nic/update?hostname=$DYNHOST&myip=$IP"
date +%s > "$LASTUPDATE"
fi