Cette page est en cours de rédaction.
Apportez votre aide…
Apportez votre aide…
Comment envoyer l'IP de sa box automatiquement par courriel
Pré-requis : savoir envoyer un courriel par SMTP en ligne de commande
- Voir le tuto : comment_envoyer_un_mail_par_smtp_en_ligne_de_commande
Envoyer l'IP externe de sa box par courriel dans un script
Récupérer l'IP externe de sa box
GET bot.whatismyipaddress.com
- Cette commande renvoie des erreurs une fois sur deux, donc on va la lancer 2 ou 3 fois dans un script et récupérer l'IP dans un fichier.
nano ~/getip
GET bot.whatismyipaddress.com > .myip echo "" >> .myip sleep 1 GET bot.whatismyipaddress.com >> .myip echo "" >> .myip sleep 1 GET bot.whatismyipaddress.com >> .myip echo "" >> .myip
sh ~/getip
cat ~/.myip
92.122.18.135 92.122.18.135 92.122.18.135
Envoyer son IP de box à son courriel au bureau
- Voir le tuto : comment_envoyer_un_mail_par_smtp_en_ligne_de_commande
par msmtp
cat ~/.myip | msmtp johnny@whitehouse.gov
par ssmtp
cat ~/.myip | mail johnny@whitehouse.gov
Sans préciser Subject:DeQuoiOnParle le message n'aura pas de sujet.
Il faut donc prévoir de le rajouter en tête du fichier ~/.myip
Compléter le script : récupérer l'IP ET l'envoyer
Attention, seule la première ligne ne contient qu'un signe > (ce qui crée ou écrase le fichier). Toutes les autres lignes contiennent 2 signes » (ce qui complète un fichier existant, ou le crée sinon).
Le format de sortie du site qui vous renvoie votre IP pouvant être modifié, je suggère d'utiliser plusieurs sources, et d'en retravailler la sortie.
Je compte obtenir l'adresse sous la forme des 4 octets, séparés par 3 points.
- Modifier le fichier ~/getip pour qu'il intègre la commande msmtp (ou mail) à la dernière ligne:
nano ~/getip
echo Subject:MaBoxMeParle > .myip GET http://www.formyip.com/ | grep "Your IP is" |awk '{print $6}'|sed 's/</ /g'|awk '{print $1}' >> .myip echo "" >> .myip sleep 1 GET http://bot.whatismyipaddress.com >> .myip echo "" >> .myip cat .myip | msmtp johnny@whitehouse.gov
- Rendre le script exécutable :
chmod 700 ~/getip
Utilisation
- Lancer le script
sh ~/getip
Vérification
- Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu, soit 3 lignes avec l'adresse IP de la maison blanche … si c'est là que votre box est branchée.
Contenu de .myip
cat .myip
Subject:MaBoxMeParle 86.178.64.39 86.178.64.39
Automatisation de l'envoi
Par la crontab
Le système crontab intégré à unix/linux permet une programmation simple de l'exécution de commandes et scripts.
Modification de la crontab
- Si la crontab de l'utilisateur existe, on la redirige vers un fichier
crontab -l > cron
On évite systématiquement l'édition par la commande crontab -e, parce que la perte de 50 lignes de programmation sur un serveur de production, ça fait toujours chaud aux oreilles !
- Puis on modifie/crée le fichier cron en y ajoutant notre ligne de programmation :
nano cron
23 8,12,15,18 1-5 * * sh /home/johnny/getip # à 08:23 12:23 15:23 et 18:23, du 1er au 5ème jour de la semaine # parce que les soirs et week-end je suis à la maison # et que c'est encore plus simple de récupérer mon IP
Injection des modifications de la crontab
- Créer le fichier cron ne suffit pas, il faut encore l'injecter dans le système crontab :
crontab ~/cron
Vérification de la crontab
crontab -l
... 23 8,12,15,18 1-5 * * sh /home/johnny/getip ...
(23 8,12,15,18 1-5 * *) donne bien les jours 1 à 5 dans la semaine alors que (23 8,12,15,18 * * 1-5) donne les jours 1 à 5 du mois
Nettoyage
- Pas de raison de laisser traîner son cron derrière soi, puisqu'on sait le recréer à volonté
rm ~/cron
Par autre chose que la crontab…
Partie à compléter
Remarques :
- Si l'envoi répété de l'IP sature votre boîte de courriel, à vous de modifier la programmation.
- Il est possible de créer un fichier .ini dans lequel on stocke l'ip connue, une comparaison avec l'ip courante décidera si il est nécessaire d'envoyer le mail ou pas en cas de changement.