IPChecker — мониторинг внешнего IP с уведомлениями в Telegram
Для удалённого доступа к домашнему серверу и сервисам на нем, важно знать текущий внешний IP-адрес. Решил написать простой бот, который отслеживает изменения и присылает уведомления в Telegram.
Описание проекта
IPChecker — минималистичный Python-бот для мониторинга внешнего IP-адреса. При изменении IP отправляет уведомление в Telegram с указанием старого и нового адреса.
Возможности
- Автоматическая проверка внешнего IP через API ipify.org
- Уведомления в Telegram при изменении адреса
- Сохранение истории последнего IP в локальный файла
- Настраиваемая частота проверок
- Запуск как системная служба через systemd
- Автоматический перезапуск при сбоях
Установка
1. Клонирование репозитория
git clone https://gitverse.ru/tatarinovms/IPChecker.git cd IPChecker
2. Установка зависимостей
sudo apt update sudo apt install python3-requests
3. Настройка конфигурации
Скопируйте пример конфигурации и заполните своими данными:
cp config.example.py config.py
Отредактируйте файл config.py:
# Токен вашего бота от BotFather TELEGRAM_TOKEN = "12345678:ABCDefGhIklMnOpQrStUvWxY" # Ваш ID пользователя (узнайте через @userinfobot) CHAT_ID = "123456789" # Количество проверок в сутки (24 — раз в час) CHECKS_PER_DAY = 24 # Файл для хранения последнего известного IP IP_STORAGE_FILE = "last_ip.txt"
4. Запуск как systemd-сервис
Отредактируйте файл ip_bot.service, указав правильные пути:
[Unit] Description=Telegram IP Change Notifier After=network.target [Service] Type=simple User=root WorkingDirectory=/root/IPChecker/ ExecStart=/usr/bin/python3 /root/IPChecker/ip_notifier.py Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
Установите и запустите сервис:
sudo cp ip_bot.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable ip_bot.service sudo systemctl start ip_bot.service
sudo systemctl status ip_bot.service
Как получить токен бота
- Напишите @BotFather в Telegram
- Отправьте команду
/newbot - Следуйте инструкциям для создания бота
- Скопируйте полученный токен в
TELEGRAM_TOKEN
Как узнать свой Chat ID
Отправьте сообщение боту @userinfobot — он покажет ваш ID.
Пример работы
При первом запуске бот отправит:
🚀 Бот запущен. Текущий IP: 95.165.xxx.xxx
🔔 Внимание! Внешний IP изменился. Старый: 95.165.xxx.xxx Новый: 178.176.xxx.xxx
Заключение
Простой и надёжный инструмент для тех, кто держит домашний сервер и хочет всегда быть в курсе изменений внешнего IP. Минимальные зависимости и systemd-сервис обеспечивают стабильную работу в фоновом режиме.
Репозиторий: IPChecker на GitVerse