Vous l’avez peut-être lu, j’ai récemment changé de connexion internet.
Tout fonctionne bien pour le moment, mais l’interface web du nouveau modem est plutôt réduite. Pas de logs détaillés pour connaître les moments de changement d’adresse IP.
Pour y remédier, j’ai mis en place un petit script sur mon Raspberry Pi.
Le script va vérifier l’adresse IP toutes les 5 minutes via un cronjob
et envoyer une notification Pushbullet et ajouter une ligne dans un fichier log lorsqu’il y a du changement.
Le voici :
#!/bin/bash # On rapatrie http://checkip.dyndns.com/ dans le fichier index.html wget http://checkip.dyndns.com/ -O /home/pi/scripts/notify-change-IP/index.html # On extrait l'adresse IP du fichier index.html et on la place dans le fichier IPactuelle.txt cat /home/pi/scripts/notify-change-IP/index.html | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' > /home/pi/scripts/notify-change-IP/IPactuelle.txt # On stocke l'IP contenue dans le fichier IPactuelle.txt dans la variable $IPactuelle IPactuelle=$(cat /home/pi/scripts/notify-change-IP/IPactuelle.txt) # On stocke l'IP contenue dans le fichier IPenregistree.txt dans la variable $IPenregistree IPenregistree=$(cat /home/pi/scripts/notify-change-IP/IPenregistree.txt) # Si les variables $IPactuelle et $IPenregistree sont différentes et si $IPactuelle n'est pas vide if [ "$IPactuelle" != "$IPenregistree" ] && [ "$IPactuelle" != "" ] then # On remplace le fichier IPenregistree.txt par IPactuelle.txt cp /home/pi/scripts/notify-change-IP/IPactuelle.txt /home/pi/scripts/notify-change-IP/IPenregistree.txt # On envoie la notification Pushbullet curl -s -u ici_votre_token_Pushbullet: https://api.pushbullet.com/v2/pushes -d type=note -d title="Raspberry Pi - Changement IP" -d body="L'adresse IP publique du Raspberry Pi vient de changer : $IPactuelle" > /dev/null # On ajoute une ligne dans le log qui contient la date, l'heure et l'adresse IP echo `date +\%Y\%m\%d` - `date +\%T` - IP : $IPactuelle >> /var/log/notify-change-IP/notify-change-IP-`date +\%Y\%m`.log fi # On supprime le fichier index.html rm /home/pi/scripts/notify-change-IP/index.html
N’oubliez pas de créer le dossier /var/log/notify-change-IP/
dans les logs.
On rend le script exécutable :
$ sudo chmod ug+x /home/pi/scripts/notify-change-IP/notify-change-IP.sh
Et on ajoute une ligne dans le cron
:
$ sudo crontab -e
# Envoie une notification quand l'adresse IP publique change */5 * * * * /home/pi/scripts/notify-change-IP/notify-change-IP.sh > /dev/null 2>&1
Source : catch22 Stackoverflow.com