Blog
January 5

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

Как получить токен бота

  1. Напишите @BotFather в Telegram
  2. Отправьте команду /newbot
  3. Следуйте инструкциям для создания бота
  4. Скопируйте полученный токен в TELEGRAM_TOKEN

Как узнать свой Chat ID

Отправьте сообщение боту @userinfobot — он покажет ваш ID.

Пример работы

При первом запуске бот отправит:

🚀 Бот запущен. Текущий IP: 95.165.xxx.xxx

При изменении IP:

🔔 Внимание! Внешний IP изменился. Старый: 95.165.xxx.xxx Новый: 178.176.xxx.xxx

Заключение

Простой и надёжный инструмент для тех, кто держит домашний сервер и хочет всегда быть в курсе изменений внешнего IP. Минимальные зависимости и systemd-сервис обеспечивают стабильную работу в фоновом режиме.

Репозиторий: IPChecker на GitVerse