Outils pour utilisateurs

Outils du site


documentation:mail:mail_ip_serveur

Envoi par mail de l'adresse IP dynamique d'un serveur

Exemple d'utilisation :

Dans mon cas, cela va me servir à me faire envoyer par courriel l'adresse IP de mon serveur. En fait, comme je fais des tests, j'ai un nom de domaine gratuit avec une redirection sur mon adresse IP. Lorsque mon adresse IP change … et bien il faut être chez soit pour connaître cette nouvelle adresse IP. Nouvelle adresse IP qu'il faut que je renseigne dans la partie admin sur le site qui gère la redirection de mon nom de domaine.

Prérequis :
  • avoir un FAI ou autre qui ne bloque pas le port 25 en smtp

1) Installer sendEmail

sudo apt-get install sendEmail

2) Connaître son adresse IP :

Dans un terminal tapez :

wget -qO- icanhazip.com

Copier son adresse IP dans un nouveau fichier ip_public_1 qui sera enregistré sur le Bureau :

sudo nano ~/Bureau/ip_public_1

Copier son adresse IP dans un nouveau fichier ip_public_2 qui sera enregistré sur le Bureau :

sudo nano ~/Bureau/ip_public_2

3) Le script ip_pub.sh

Sur la base du script de Jonas consultable ici :

http://www.informetik.fr/drupal7/node/13

sudo nano ~/Bureau/ip_pub.sh

Copiez et collez y cela :

ip_pub.sh
  #!/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*

Syntaxe de sendEmail :

sendEmail -s SMTP -f FROM_@ -t TO_@ -u OBJET_entre_' -m CONTENU_DU_MESSAGE -a CHEMIN_DE_LA_PIECE_JOINTE

4) Rendre le script exécutable :

chmod u+x ~/ip_pub.sh

5) Automatiser ce script avec cron :

Lancement du script tous les jours à midi et demi :

crontab -e

A la fin du fichier ajouter :

30 12 * * * /home/UTILISATEUR/ip_pub.sh

Pour vous aider :

http://doc.ubuntu-fr.org/cron

http://www.openjs.com/scripts/jslibrary/demos/crontab.php

documentation/mail/mail_ip_serveur.txt · Dernière modification: le 04-12-2018 à 17h58 (modification externe)