Je n'ai pas trouver d'option pour être averti automatiquement de changement de mon IP sur les produits synology.
Donc je propose un script fonctionnel pour DSM et SRM.
DSM
Actuellement je suis sous DSM 6.2.2-24922 Update 2
Il va falloir crée un script dans le planificateur de tâches en tant que root dans configuration:
Dans exécuter la commande mettez le script suivant. Je laisse la fréquence sur toutes les minutes.
Dans cette exemple il creera 2 fichiers : ip.txt + message.txt(ce dernier s'efface automatiquement)
Dans cette exemple il creera le fichier dans
/volume1/administration/check_ip_wan/
Modifier le script selon l'endroit où vous voulez placer ces fichiers.
#!/bin/bash
file=/volume1/administration/check_ip_wan/ip.txt #indique ou se trouve ip.txt
old_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verifie l'ip actuel
##Verifie que ip.txt existe, sinon creation du fichier##
if test -f "$file"; then
echo "$file exist"
else
echo "create $file"
`touch /volume1/administration/check_ip_wan/ip.txtip.txt`
`echo $insert_ip > /volume1/administration/check_ip_wan/ip.txt/ip.txt`
fi
##Fin de verification que ip.txt existe##
current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verification de l'ip actuel
old_ip=`cat /volume1/administration/check_ip_wan/ip.txt` # destination du fichier ip.txt
#####################
### CONFIGURATION ###
#####################
to="monmail@ndd.com" #changez par votre mail de destination
from="Serveur xxxx <monmail@ndd.com>"#Nom de l'expediteur et changez par votre mail de destination
subject="Votre adresse IP publique (IPv4) a changé !\r\n"
# contenu du message
body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."`
# destination du message temporaire
messageFile="/volume1/administration/check_ip_wan/message.txt"
##############
### SCRIPT ###
##############
if [ "$old_ip" != "$current_ip" ]; then
# création du fichier ip.txt et envoi d'un mail avec les informations
`touch /volume1/administration/check_ip_wan/ip.txt`
`echo $current_ip > /volume1/administration/check_ip_wan/ip.txt`
echo -e "to:${to}">${messageFile};
echo -e "from:${from}">>${messageFile};
echo -e "subject:${subject}">>${messageFile};
echo -e "${body}" >> ${messageFile};
ssmtp -v ${to} < /volume1/administration/check_ip_wan/message.txt;
rm ${messageFile}
else
echo "Adresse IP non changé !"
fi
SRM
Actuellement je suis sou SRM 1.2.2-7915 avec un RT2600ac
Actuellement SRM ne propose pas de fonction comme DSM pour une tâche planifiée. Donc va falloir utiliser crontab et créer ses fichiers.
Activez l’accès ssh sur votre SRM (Panneau de configuration / Services).
J'utilise actuellement une carte sd sur mon RT2600ac.
Dans cette carte via File Station j'ai crée un répertoire scripts et un sous répertoire tmp dans script.
Vous pouvez bien sur crée un répertoire directement dans la mémoire du routeur si vous utilisez pas de carte sd. Il vous suffit juste d'adapter le code à votre besoin.
Rentrer en ssh en tant que avec putty sur votre routeur.
faites ceci pour creer le fichier script :
vi /volumeUSB1/usbshare1-1/scripts/ip_notify.sh
chmod 755 ip_notify.sh
appuyez sur i pour inserer le code suivant :
#!/bin/sh
file=/volumeUSB1/usbshare1-1/scripts/tmp/ip.txt #indique ou se trouve ip.txt
old_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verifie l'ip actuel
##Verifie que ip.txt existe, sinon creation du fichier##
if test -f "$file"; then
echo "$file exist"
else
echo "create $file"
`touch /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt`
`echo $insert_ip > /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt`
fi
##Fin de verification que ip.txt existe##
current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verification de l'ip actuel
old_ip=`cat /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` # destination du fichier ip.txt
#####################
### CONFIGURATION ###
#####################
to="monmail@ndd.com" #changez par votre mail de destination
from="Serveur xxxx <monmail@ndd.com>"#Nom de l'expediteur et changez par votre mail de destination
subject="Votre adresse IP publique (IPv4) a changé !\r\n"
# contenu du message
body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."`
# destination du message temporaire
messageFile="/volumeUSB1/usbshare1-1/scripts/tmp/message.txt"
##############
### SCRIPT ###
##############
if [ "$old_ip" != "$current_ip" ]; then
# création du fichier ip.txt et envoi d'un mail avec les informations
`touch /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt`
`echo $current_ip > /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt`
echo -e "to:${to}">${messageFile};
echo -e "from:${from}">>${messageFile};
echo -e "subject:${subject}">>${messageFile};
echo -e "${body}" >> ${messageFile};
ssmtp -v ${to} < /volumeUSB1/usbshare1-1/scripts/tmp/message.txt;
rm ${messageFile}
else
echo "Adresse IP non changé !"
fi
Maintenant il va falloir créer une tâche planifiée.
Pour cela il va falloir ajouter une ligne dans crontab.
faites :
vi /etc/crontab
insérer une nouvelle ligne comme ceci :
* * * * * root /bin/sh /volumeUSB1/usbshare1-1/scripts/ip_notify.sh
avec ceci le script vérifie automatiquement toutes les minutes si l'ip change.
Remerciement : @Zeus