SprintDNS for vBulletin 3.8.x
Автоматическая защита DNS от смены IP сервера
Проблема
Ваш форум на VPS/облаке? IP сервера может смениться в любой момент — после перезагрузки, обслуживания, миграции. DNS-записи домена по-прежнему указывают на старый IP → форум лежит, пользователи видят ошибку, а вы узнаёте об этом через часы.
Решение
SprintDNS — модуль для vBulletin 3.8.x, который каждые 5 минут проверяет DNS A-запись вашего домена. Если IP сменился — модуль сам обновит DNS через API хостинг-провайдера. Без SSH. Без crontab на сервере. Всё работает изнутри форума.
Возможности
- Автоматическая проверка DNS — крон vBulletin раз в 5 минут сравнивает A-запись с реальным IP
- Обновление через API — поддержка Beget DNS API (другие провайдеры легко добавляются)
- Сохранение MX/TXT — при обновлении A-записи почтовые (MX), SPF и верификационные (TXT) записи не затираются
- Email-уведомления — получайте письмо при каждом обновлении DNS
- Лог в AdminCP — полная история: когда, какой IP был, какой стал, ошибки
- Автоочистка логов — настраиваемый срок хранения (по умолчанию 30 дней)
- Авто-определение IP — модуль сам узнает IP сервера, или можно задать вручную
- Вкл/Выкл одной кнопкой — все настройки в стандартной панели AdminCP
Настройки в AdminCP
После установки в разделе
Settings → SprintDNS — Управление DNS появятся:
- SprintDNS активен — главный выключатель
- DNS-провайдер — пока beget, в будущем другие
- Домен — ваш FQDN (например: mysite.ru)
- Целевой IP — конкретный IP или auto (определит автоматически)
- Email для уведомлений — (необязательно)
- Beget: Логин — логин от панели Beget
- Beget: Пароль — пароль от панели Beget
- Сохранять MX/TXT — рекомендуется Да
- Дней хранения логов — по умолчанию 30
Установка
Шаг 1. Загрузите файл
sprintdns.php на сервер в папку:
Код:
includes/cron/sprintdns.php
Шаг 2. В AdminCP перейдите:
Код:
Plugins & Products → Manage Products → Add/Import Product
Выберите файл
product-sprintdns.xml и нажмите Import.
Шаг 3. Перейдите в
Settings → найдите группу
SprintDNS → заполните домен, логин и пароль Beget.
Готово. Модуль начнёт работу при следующем запуске крона (в течение 5 минут).
Как проверить работу
AdminCP →
Scheduled Tasks → Scheduled Task Log — ищите записи
SprintDNS:
- [OK] mysite.ru: 1.2.3.4 -> 1.2.3.4 — IP совпадает, всё в порядке
- [OK] mysite.ru: 1.2.3.4 -> 5.6.7.8 | DNS обновлён — IP обновлён
- [!!] mysite.ru: ошибка — проверьте логин/пароль Beget
Удаление
AdminCP →
Plugins & Products → Manage Products → SprintDNS →
Uninstall.
Модуль удалит свою таблицу логов, настройки и крон-задачу. Файл
includes/cron/sprintdns.php удалите вручную.
Требования
- vBulletin 3.8.0 — 3.8.11
- PHP 5.2+ (рекомендуется 7.x)
- cURL или allow_url_fopen
- Аккаунт Beget с доступом к DNS API
Совместимость
Модуль использует только стандартные механизмы vBulletin (крон, настройки, БД). Не конфликтует с другими продуктами. Не модифицирует ядро.
Поддержка провайдеров
v1.0 — Beget
Архитектура модуля позволяет добавлять провайдеров (Cloudflare, Hetzner DNS, REG.RU и др.) — каждый провайдер = одна PHP-функция.
Автор
smalta.net
Версия: 1.0.0
Лицензия: бесплатно
Если модуль помог — поставь лайк, это мотивирует.
Установка для друга:
Загрузить sprintdns.php в includes/cron/ на сервере форума
AdminCP → Plugins & Products → Manage Products → Add/Import Product → выбрать product-sprintdns.xml
AdminCP → Settings → SprintDNS — заполнить домен, Beget логин/пароль
Всё — крон проверяет DNS каждые 5 минут
Что делает модуль:
Каждые 5 мин проверяет DNS A-запись домена
Если IP расходится — обновляет через Beget API
Сохраняет MX/TXT записи (почта, SPF, верификация)