#!/usr/bin/env bash #creation variable OLDPUBIP servant de reference pour comparer avec la nouvelle IP. OLDPUBIP=`cat ~/ip_pub_1` echo "$OLDPUBIP ancienne IP" #creation et initialisation variable count (compteur incrementiel) COUNT=0 ENDCOUNT=2 # PUBIP est la variable qui contiendra l'adresse IP publique du site. PUBIP="" # bloc d'instruction visant a recuperer l'adresse IP Publique du site. # PUBIP est la variable qui contiendra l'adresse IP publique du site. PUBIP="" # bloc d'instruction visant a recuperer l'adresse IP Publique du site. # Utilisation d'une boucle until. # test des variables COUNT ( COUNT = ENDCOUNT ) et PUBIP (PUBIP non nul) # Si (if) cela echoue par whatIP, il la variable PUBIP (PUBIP est nulle) et dans ce cas recupere l'IP par monip # Incrementation du compteur a la fin de chaque boucle (sinon, la boucle est infinie). until [ "$COUNT" -eq "$ENDCOUNT" -o -n "$PUBIP" ] do PUBIP=`wget http://www.whatip.com ; grep -i "your IP: " index.html | grep -o "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"` echo "$PUBIP par whatip" sleep 3 if [ -z "$PUBIP" ] then PUBIP=`wget http://www.monip.org ; grep -i "IP : " index.html | grep -o " [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"` echo "$PUBIP par monip" else echo "la variable est deja remplie" fi if [ -z "$PUBIP" ] then PUBIP=`wget -qO- icanhazip.com` echo "$PUBIP par icanhazip.com" else echo "la variable est déjà remplie" fi echo " La variable de l'adresse IP contient : $PUBIP " sleep 2 echo "le compteur est a $COUNT, la limite autorisee du compteur est $ENDCOUNT" let COUNT=$COUNT+1 echo "Le nouveau compteur est a $ENDCOUNT" done #Fin du bloc d'instruction visant a recupere l'adresse IP publique. echo affichage IP Publique echo $PUBIP # creation du fichier de reference ip_pub echo $PUBIP > ~/ip_pub_2 # Bloc d'instruction visant a definir la conduite a tenir en fonction de l'adresse IP recuperee. Si un changement s'est produit, alors $PUBIP sera differente de l'ancienne adresse qui se trouvera dans la variable $OLDPUBIP if [ "$PUBIP" = "$OLDPUBIP" ] then echo " Adresse IP Publique inchangee." sendEmail -s smtp.FAI.fr -f ADRESSE_MAIL@D_ENVOI.MACHIN -t ADRESSE_MAIL@DU_DESTINATAIRE.BIDULE -u 'Adresse IP Publique inchangee' -m $PUBIP else echo " Adresse IP publique modifiee." sendEmail -s smtp.FAI.fr -f ADRESSE_MAIL@D_ENVOI.MACHIN -t ADRESSE_MAIL@DU_DESTINATAIRE.BIDULE -u 'Adresse IP Publique modifiee' -m $PUBIP -a ~/ip_pub_1 ~/ip_pub_2 rm -f ~/ip_pub_1 mv ~/ip_pub_2 ~/ip_pub_1 fi rm -f ~/index.html*