
Для удалённого доступа к домашнему серверу и сервисам на нем, важно знать текущий внешний IP-адрес. Решил написать простой бот, который отслеживает изменения и присылает уведомления в Telegram.
Описание проекта#
IPChecker — минималистичный Python-бот для мониторинга внешнего IP-адреса. При изменении IP отправляет уведомление в Telegram с указанием старого и нового адреса.
Возможности#
- Автоматическая проверка внешнего IP через API ipify.org
- Уведомления в Telegram при изменении адреса
- Сохранение истории последнего IP в локальный файла
- Настраиваемая частота проверок
- Запуск как системная служба через systemd
- Автоматический перезапуск при сбоях
Установка#
1. Клонирование репозитория#
git clone https://gitverse.ru/tatarinovms/IPChecker.git
cd IPChecker2. Установка зависимостей#
sudo apt update
sudo apt install python3-requests3. Настройка конфигурации#
Скопируйте пример конфигурации и заполните своими данными:
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:
🔔 Внимание! Внешний IP изменился. Старый: 95.165.xxx.xxx Новый: 178.176.xxx.xxx
Заключение#
Простой и надёжный инструмент для тех, кто держит домашний сервер и хочет всегда быть в курсе изменений внешнего IP. Минимальные зависимости и systemd-сервис обеспечивают стабильную работу в фоновом режиме.
Репозиторий: IPChecker на GitVerse


