Tuohon edellisen viestini kommenttiin Ubuntun sivujen skriptistä lisäisin vielä sen verran, että huomasin että tuolla dy.fi sivuilla lukee näin:
http://www.dy.fi/page/clients kirjoitti:Ole ystävällinen ja aseta käyttämäsi päivitysohjelma lähettämään päivityspyyntöjä vain IP-osoitteesi vaihduttua, mutta kutenkin vähintään kerran 5-6 päivässä osoituksen päivittämiseksi (poistamme nimipalvelusta tiedot, joita ei ole päivitetty 7 päivään). Käyttäjätunnukset, jotka lähettävät suuriä määriä tarpeettomia päivityspyyntöjä ja aiheuttavat näin ylimääräistä kuormaa palvelimellemme, suljetaan automaattisesti.
Niin että tässä nyt sellainen perl-lukutaidottomille (kuten minä), joka ensin tarkistaa onko IP muuttunut ennenkuin lähettää päivityspyyntöä:
Koodi: Valitse kaikki
#!/bin/sh
echo "dy.fi IP-address updater using curl"
###############################################################################
# CHANGE THESE!
MYDYFIUSERNAME=
MYDYFIPASSWD=
MYDYFIHOSTNAME=
#
# Example:
# MYDYFIHOSTNAME=example
# MYDYFIPASSWD=secret
# MYDYFIUSERNAME=johndoe
###############################################################################
if [ -z "$MYDYFIUSERNAME" ]; then { echo "No username defined"; exit 1;}; fi
if [ -z "$MYDYFIPASSWD" ]; then { echo "No password defined"; exit 1;}; fi
if [ -z "$MYDYFIHOSTNAME" ]; then { echo "No hostname defined"; exit 1;}; fi
now() {
date "+%Y%m%d %H:%M"
}
ckip() {
curl -s http://checkip.dy.fi | tr -d '[:alpha:]:/<> '
}
chip() {
curl -sSu $MYDYFIUSERNAME:$MYDYFIPASSWD https://www.dy.fi/nic/update?hostname=$MYDYFIHOSTNAME
}
echo "Polling for IP-address change, press ^C to quit"
while : ; do
if [ -z "$MYIP" ]; then
/bin/echo -n "`now` Current IP address is "
MYIP=`ckip`
echo $MYIP
elif [ "$MYIP" != "`ckip`" ]; then
/bin/echo -n "`now` IP-address changed from $MYIP to "
MYIP=`ckip`
echo $MYIP
chip
else
echo "`now` No IP-address change... zzz"
fi
sleep 3600
done
Eli tuo yllä oleva koodi tallennetaan teksti-muotoiseen tiedostoon, esimerkiksi dyfi.command -nimiseen, jonka jälkeen tiedosto määritetään suoritettavaksi antamalla päätteeseen käsky: chmod +x dyfi.command
(Tietoturvatietoiset varmastikkin vielä muuttavat tiedoston oikeuksia niin, ettei muut voi lukea tai suorittaa tiedoston sisältöä: chmod og-rx dyfi.command)
Käynnistys tuplaklikkaamalla Finderissa.
Ylläoleva siis kysyy ikuisessa loopissa tunnin välein dy.fi -palvelimelta mikä on ulospäin näkyvä IP-osoite, ja mikäli se on muuttunut edelliseen kyselyn jälkeen, lähettää päivityspyynnön. En ole voinut testata tuon toimivuutta kun ei ole tuo palvelu käytössä.
Välityspalvelimen takaa tämä skripti ei toimi.
Sellainen puute tässä nyt vielä on, että pitäisi kuitenkin kerran viikkoon päivittää vaikkei olisi muuttunut.