Bonjour la communauté.
Ceci est mon premier script. J’en suis donc très fier.
Il en existe peut-être d’autres sur ce site et certainement mieux mais c’est le mien.
J’ai toujours entendu dire qu’il était préférable, du point de vue de la sécurité, d’avoir une IP dynamique plutôt que Statique. Or lorsqu’on a un serveur, on utilise une IP statique pour que le serveur reste joignable.
Etant le seul à me connecter au serveur, le script bash suivant test l’adresse IP (ici au bout de 3 minutes pour faire les essais) et, si elle a changé, me l’envoie sur une adresse mail via msmtp.
Edit:
Les paquets w3m ainsi que msmtp (ici pour la version stable actuelle Jessie) sont à installer via apt-get ou aptitude.
[code]#!/bin/bash
#Identification de l’IP publique (stockée dans la variable ipperso1)
ipperso1=$(w3m -dump http://www.monip.org/ | awk -F’: ’ ‘/IP/ { print $2 }’)
#echo “La premiere IP est $ipperso1”
#Envoie de cette IP sur la boite mail
echo “$ipperso1” >> /home/user/Documents/Scripts/myip
cat myip | msmtp user@truc.net
###############
#Surveiller les changements d’IP publique
###############
#while true permet de faire tourner le script en boucle
while true;
do
#Récupération de l’IP publique (stockée dans la variable ipperso2)
ipperso2=$(w3m -dump http://www.monip.org/ | awk -F’: ’ ‘/IP/ { print $2 }’)
#echo “La seconde IP est $ipperso2”
#Test conditionnel : si les deux IP stockées dans ipperso1 et dans ipperso2 sont différentes
if [ $ipperso1 != $ipperso2 ]
then
#Dans le cas où les IP sont différentes, le contenue de la variable ipperso2 est inscrite dans .myip
echo “$ipperso2” >> /home/user/Documents/Scripts/myip
#Envoyer le fichier myip par mail
cat myip | msmtp user@truc.net
#Attribuer la valeur de l’ipperso2 à la variable ipperso1
ipperso1=$ipperso2
echo “La premier IP est devenue $ipperso1”
else
#Dans le cas contraire (i.e. les deux IP sont identiques)
#Attendre 3 minutes
sleep 3m
#Avant de récupérer à nouveau l’IP publique est de la stocker dans la variable ipperso2
ipperso2=$(w3m -dump http://www.monip.org/ | awk -F’: ’ ‘/IP/ { print $2 }’)
echo “Les deux IP sont identiques”
fi
done
exit 0[/code]
La récupération de l’adresse publique, je l’ai copié-collé du net.
J’ai testé et j’ai une erreur après le reboot de la box. Mais une fois que le délai de 3 minutes est écoulé, je reçois bien la nouvelle IP dans ma boite mail.
Pour une véritable utilisation le délai ne serait pas de 3 minutes mais de 24 heures puisque j’ai cru comprendre que mon FAI changait d’IP toutes les semaines.
Je ne sais pas si ce script est pertinent et surtout si je ne vais pas me faire bannir pour spam. Vous m’avertirez.
Edit:
J’ai refait un test avec un délai de 20 minutes et aucune erreur dans le terminal. J’en conclue que 3 minutes est trop court pour que la box soit pleinement opérationnelle.