DetectChangeIp для нескольких интернет-соединений

09/01/2025: Обновление более стабильной и производительной версии с возможностью исключения предупреждений с определенных IP-адресов.



У меня есть маршрутизатор Synology и 2 интернет-соединения (одно от Starlink и другое от Proximus), благодаря опции на маршрутизаторе Synology я автоматически переключаю интернет-соединение на другое, если одно из них становится недоступным.

Проблема в том, что мое соединение Proximus - это очень маленькое соединение с ограниченным квотой, я хочу оставаться как можно дольше на соединении Starlink, которое не имеет ограничений, но как узнать, что я переключаюсь с одного на другое? Я оказываюсь без ведома на Proximus днями и ночами, рискуя исчерпать свой квот.

Я создал небольшой инструмент, который устанавливается на Synology (с установленным пакетом .Net Core 6.0) и который отправляет мне электронное письмо, когда он обнаруживает, что я нахожусь на другом IP-адресе интернета! Так что переключение произошло без моего ведома! Очень удобно!

Вот что это дает:

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

Существует версия для Windows, если у вас нет NAS Synology, и версия для Linux

На Synology

Вы можете запустить версию LINUX на Synology через задачу, выполняемую при запуске

1) Убедитесь, что пакет ".Net 8" установлен на вашем Synology
2) Скачайте версию Linux приложения и скопируйте все файлы в каталог на ваш выбор на вашем Synology (например, в "/homes/[ваше имя пользователя в synology]/DetectChangeIp")
3) Вам нужно дать права на выполнение для файла "DetectChangeIp" (chmod +rwx DetectChangeIp), вы можете сделать это в "FileZilla", щелкнув правой кнопкой мыши по файлу, затем "Свойства" на вкладке "Разрешения", отметьте все поля (или сделать это через ssh с командой "chmod +rwx DetectChangeIp")
4) На вашем Synology откройте "Панель управления", затем "Планировщик задач"
5) Создайте новую задачу "срабатывающую", откроется окно, выберите "Запуск" рядом с "Событие", таким образом, он запустит приложение "DetectChangeIp" как только Synology запустится
6) На вкладке "Параметры задачи" вы должны записать путь, где находится файл "DetectChangeIp", например:  /volume1/homes/[ваше имя пользователя в synology]/DetectChangeIp/DetectChangeIp

Готово! В первый раз выполните задачу вручную с помощью кнопки "Выполнить", вы можете видеть логи, если приложение работает правильно, под кнопкой "Действие" > "Показать результат"

Как 'Служба' на Windows

1) Убедитесь, что у вас установлен .Net Core 8.0
2) Для установки консольного приложения в службу используйте nssm: https://nssm.cc/download
3) Скопируйте файл nssm в C:\Windows\System32
4) Скачайте версию Windows DetectChangeIp и скопируйте ее в одну из ваших папок
5) Откройте командную строку и введите: nssm install DetectChangeIpService "C:\путь\к\DetectChangeIp.exe"

Вот и все, теперь, если вы хотите остановить вашу службу, вы можете ввести: nssm stop DetectChangeIpService 
     * nssm restart DetectChangeIpService 
     * nssm remove DetectChangeIpService confirm

Файл конфигурации "appSettings.json"

В файле конфигурации "appSettings.json" вы должны обязательно указать электронную почту и сервер, чтобы он отправлял электронные письма на ваш ящик.
Также есть возможность указать исключения, например, если вы используете VPN, вы не хотите, чтобы он уведомлял вас, когда вы находитесь под определенным IP-адресом.

Внимание, для Windows или Linux (а также Synology) вам необходимо предварительно установить Runtime .Net 8.0 (https://dotnet.microsoft.com/en-us/download/dotnet/8.0)

Téléchargement — Version 1.0

Aucun commentaire pour le moment.

Une erreur s'est produite. Cette application peut ne plus répondre jusqu'à ce qu'elle soit rechargée.Veuillez contacter l'auteur. Reload 🗙