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