2026-08-03 22:59:51 +07:00
2026-08-03 22:54:26 +07:00
2026-08-03 22:54:26 +07:00
2026-08-03 22:59:51 +07:00

domain_check

Скрипт для отслеживания освобождения доменов. Периодически проверяет список доменов через whois и присылает отчёт на почту.

Требования

  • Python 3
  • Системная утилита whois (в macOS уже установлена: /usr/bin/whois)

Настройка

Отредактируйте config.json:

{
  "domains": ["example.com", "example.net"],
  "check_interval_minutes": 60,
  "smtp": {
    "host": "smtp.gmail.com",
    "port": 587,
    "use_tls": true,
    "username": "your_account@gmail.com",
    "password": "app_password_here",
    "from": "your_account@gmail.com",
    "to": ["your_account@gmail.com"]
  }
}
  • domains — список доменов для отслеживания.
  • check_interval_minutes — как часто проверять (в минутах). Конфиг перечитывается перед каждой проверкой, так что список доменов можно менять без перезапуска скрипта.
  • smtp.use_tlstrue для STARTTLS (обычно порт 587), false для SSL (обычно порт 465).
  • smtp.password — для Gmail нужен app password, а не обычный пароль аккаунта.

Запуск

Разовая проверка:

python3 domain_check.py --once

Постоянный мониторинг (проверяет и спит check_interval_minutes, повторяя бесконечно; останавливается по Ctrl+C):

python3 domain_check.py

Свой путь к конфигу:

python3 domain_check.py --config /path/to/config.json

Как определяется статус

Скрипт разбирает ответ whois:

  • Если в ответе встречаются фразы вроде no match, not found, no data found, status: available и т.п. — домен считается свободен.
  • Иначе домен считается занят, и скрипт пытается найти дату истечения регистрации (expiry date, expiration date, registry expiry date, paid-till, renewal date) — тогда в письме будет «занят до <дата>».
  • Если whois не ответил или дату не удалось разобрать, домен помечается как «занят» без даты или «не удалось проверить».

Формат ответов whois различается между регистраторами и TLD, поэтому распознавание — эвристическое и не гарантирует 100% точность для всех зон.

Письмо

  • Тема: Проверка доменов, либо Проверка доменов (есть свободные), если хотя бы один домен свободен.
  • Тело: список доменов, для каждого — свободен, занят или занят до <дата>.
S
Description
No description provided
Readme
31 KiB
Languages
Python 100%