J'ai un routeur Synology et 2 connexions Internet (un chez Starlink et l'autre chez Proximus), grâce à l'option sur le routeur Synology je balance automatiquement une connexion Internet vers l'autre si l'une ou l'autre n'est plus disponible.

Le problème c'est que ma connexion Proximus est une toute petite connexion avec un quota limité, je veux rester le plus possible sur la connexion Starlink qui lui est illimité, mais comment savoir que je balance l'un vers l'autre ? Je me retrouve sans le savoir sur Proximus des jours et des nuits au risque d'arriver au bout de mon quota.

J'ai donc créé un petit outil qui s'installe sur Synology (avec le package .Net Core 6.0 installé) et qui m'envoie un email quand il détecte que je suis sur une autre adresse IP Internet ! Donc le balancement s'est fait à mon insu ! Très pratique !

Voic ce que ca donne:

2024-02-04 17:52:24.8188  INFO DetectChangeIp.Program Previous IP found: '0.0.0.0' loaded.     
2024-02-04 17:52:26.9158  INFO DetectChangeIp.Program Detecting new change of Ip Address : 245.xxx.xxx.xxx - SPACEX-STARLINK  
2024-02-04 17:55:26.9158 INFO DetectChangeIp.Program Detecting new change of Ip Address : 114.xxx.xxx.xxx - Proximus NV

Il existe une version pour Windows si vous n'avez pas de NAS Synology et une version Linux

Sur Synology

Vous pouvez faire tourner la version LINUX sur Synology via une tâche a executer au démarrage

1) Assurez vous que le paque ".Net 6" est bien installé sur votre Synology
2) Télécharger la version Linux de l'application et copiez tous les fichiers dans un répertoire de votre choix sur votre Synology (par exemple dans "/homes/[votre username sous synology]/DetectChangeIp")
3) Vous devez donnez les permissions d'exécution sur le fichier "DetectChangeIp", vous pouvez le faire dans "File Station" en cliquant sur le fichier avec le bouton droit de la souris, puis "Propriétés" sous l'onglet "Permission", cochez toutes les cases (ou le faire viat ssh avec la commande "chmod +rwx DetectChangeIp")
4) Sur votre Synology, ouvrez le "Panneau de configuration" puis "Planificateur de tâches"
5) Créez une nouvelle tâche "déclenchée", une fenêtre va s'ouvrir, sélectionnez bien "Démarrage" à côté de "Evenement", il va lancer l'app DetectChangeIp dés que le Synology démarre
6) Sous l'onglet "Paramètre de tâche", vous devez notez le chemin ou se trouve le fichier "DetectChangeIp", par exemple:  /volume1/homes/[votre username sous synology]/DetectChangeIp/DetectChangeIp

C'est terminer ! Pour la 1ere fois Executez vous mêmes manuellement la tâche avec le bouton "Executez", vous pouvez voir les logs si l'app tourne bien sous le bouton "Action" > "Affichez le résultat"

Comme 'Service' sur Windows

1) Assurez-vous d'avoir bien le runtime .Net Core 6.0
2) Pour installer une app console en service utiliser nssm: https://nssm.cc/download
3) Copier le fichier nssm dans C:\Windows\System32
4) Télécharger la version Windows de DetectChangeIp et copier le dans un de vos répertoire
5) Ouvrez un prompt command et tapez: nssm install DetectChangeIpService "C:\chemin\vers\DetectChangeIp.exe"

Voilà, maintenant si vous voulez stoppez votre service, vous pouvez tapez: nssm stop DetectChangeIpService 
     * nssm restart DetectChangeIpService 
     * nssm remove DetectChangeIpService confirm

Téléchargement

Pour Windows: DetectChangeIp_Windows.zip
Pour Linux ou Synology: DetectChangeIp_Linux-X64.zip

Attention, pour Windows ou Linux (ainsi que Synology) vous devez avoir au préalable installer le Runtime .Net 6 (https://dotnet.microsoft.com/en-us/download/dotnet/6.0)