Add README.md
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# domain_hunt
|
||||
|
||||
Скрипт для отслеживания освобождения доменов. Периодически проверяет список доменов через `whois` и присылает отчёт на почту.
|
||||
|
||||
## Требования
|
||||
|
||||
- Python 3
|
||||
- Системная утилита `whois` (в macOS уже установлена: `/usr/bin/whois`)
|
||||
|
||||
## Настройка
|
||||
|
||||
Отредактируйте `config.json`:
|
||||
|
||||
```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_tls` — `true` для STARTTLS (обычно порт 587), `false` для SSL (обычно порт 465).
|
||||
- `smtp.password` — для Gmail нужен app password, а не обычный пароль аккаунта.
|
||||
|
||||
## Запуск
|
||||
|
||||
Разовая проверка:
|
||||
|
||||
```bash
|
||||
python3 domain_check.py --once
|
||||
```
|
||||
|
||||
Постоянный мониторинг (проверяет и спит `check_interval_minutes`, повторяя бесконечно; останавливается по Ctrl+C):
|
||||
|
||||
```bash
|
||||
python3 domain_check.py
|
||||
```
|
||||
|
||||
Свой путь к конфигу:
|
||||
|
||||
```bash
|
||||
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% точность для всех зон.
|
||||
|
||||
## Письмо
|
||||
|
||||
- Тема: `Проверка доменов`, либо `Проверка доменов (есть свободные)`, если хотя бы один домен свободен.
|
||||
- Тело: список доменов, для каждого — `свободен`, `занят` или `занят до <дата>`.
|
||||
Reference in New Issue
Block a user