samedi 2 août 2014

DynHost de OVH

Bonjour,

J'ai eu peu de temps à consacrer à mon blog ces derniers temps, mais voici un nouvel article publié avec du retard.

Les changements d'adresse IP avec Orange, m'ont conduit a mettre en place un script permettant de fonctionner avec le service Dynhost de OVH charger de gérer de manière dynamique l'adresse IP associée à un nom de domaine.

Je me suis basé sur les liens suivants:

  • http://guide.ovh.com/DynDns
  • http://www.tropfacile.net/doku.php/raspberry-pi/comment-installer-un-serveur-mail
  • http://dev.kprod.net/?q=dns-dynamique-avec-dynhost-ovh
Ainsi que les conseils d'un lecteur du blog que je remercie


Je ne vais pas faire un tutoriel de plus, mais voici les commandes que j'ai utilisé pour installer ce script:
sudo apt-get update
sudo apt-get install dnsutils
wget http://www.bozorokus.net/DynHost.tgz
tar xvzf DynHost.tgz
cd DynHost/

J'ai ensuite modifié le script d'origine pour qu'il lise la nouvelle adresse IP attribuée par Orange dans l'interface de la Livebox.

J'ai aussi ajouté un contrôles pour vérifier que l'IP soit bien enregistrée dans les DNS.

Voici ma version du script:

#! /bin/sh

IFACE=eth0
HOST=error418.net
LOGIN=error418.net-dyn
PASSWORD=418_dyn
OPTIONS=""

getip() {
      NEWIP=`curl 192.168.0.1 | awk '/WAN/{getline;split($2,Addr,">");split(Addr[2],AddIp,"<");print "\n\n"AddIp[1]"\n\n"}'`

CURIP=`host error418.net | awk '/address/ {print $NF}'`


       OLDIP=`cat ./old.ip`
        }

echo ---------------------------------- >> ./dynhost.log
echo `date` >> ./dynhost.log 
echo Démarrage de DynHost >> ./dynhost.log
getip
        echo -n "New IP: " >> ./dynhost.log
        echo $NEWIP >> ./dynhost.log

        echo -n "Current IP: " >> ./dynhost.log
        echo $CURIP >> ./dynhost.log

echo -n "Old IP: " >> ./dynhost.log
        echo $OLDIP >> ./dynhost.log

if [ "$NEWIP" ]; then
if [ $OLDIP != $NEWIP ] || [ $CURIP != $NEWIP ]; then
echo "Mise à jour!" >> ./dynhost.log
     if [ "$OPTIONS" =  "" ]; then 
          OPTIONS="-a $NEWIP" 
         fi
    python /home/pi/DynHost/ipcheck.py $OPTIONS $LOGIN $PASSWORD $HOST >> ./dynhost.log
    echo -n "$NEWIP" > ./old.ip
     else
          echo IP Identique! Pas de mise à jour. >> ./dynhost.log
     fi
 else
     echo Panique à bord: Aucune IP Disponible!! >> ./dynhost.log
 fi

Enfin, une petite tache planifiée pour completer le tout:

*/10 * * * * /home/pi/DynHost/dynhost >> /home/pi/dynhostcrontab.log 2>&1