Что можно успеть за пару часов до рассвета? Пока мир ещё спит, а день только набирает темп, внутри разворачивается одна из самых важных и незаметных работ — глубокий анализ архитектуры сайта. Не ради отчёта. Ради понимания. Ради скорости. Ради технологического роста.
О чём эта работа: не про код, а про структуру

Новость сегодняшнего дня, на первый взгляд, техническая. Но на самом деле — философская. Потому что речь идёт о внимании к деталям, которые не видны на поверхности, но определяют устойчивость всей цифровой экосистемы: домены, субдомены, DNS-записи, сертификаты, WHOIS, HTTP-заголовки.
Цель — увидеть сайт не как витрину, а как живой организм, состоящий из слоёв. Сегодняшнее утро было посвящено автоматизации именно такой диагностики.
Почему это важно
- ✔ Чтобы понимать, как сайт реально видится в сети
- ✔ Чтобы диагностировать слабые места в безопасности
- ✔ Чтобы ускорить масштабирование и запуск новых сервисов
- ✔ И просто — чтобы знать, что работает под капотом твоего проекта
Как всё происходило: путь от 3 часов до 3 минут
В 4 утра запускается терминал. Есть задача: спарсить субдомены и проверить их на активность, определить DNS, SSL, дату регистрации, доступность сайта и заголовки ответа. На старте — 3 часа ожидания. Итоговая версия — 3 минуты. Почему так?

Шаг 1: первый прототип
Начинается всё с обычного скрипта на Python. Он перебирает субдомены из файла и делает DNS-запросы. Простая логика:
import socket
def resolve_dns(subdomain):
try:
return socket.gethostbyname(subdomain)
except socket.gaierror:
return None
На каждый запрос уходит 2–3 секунды. А таких субдоменов — сотни. Вот и первая проблема.
Шаг 2: добавление проверки HTTP
Решил сразу собирать информацию о статусе сайта и заголовках:
import requests
def check_http(subdomain):
try:
response = requests.get(f"http://{subdomain}", timeout=3)
return response.status_code, response.headers
except:
return None, {}
Но это всё ещё работает синхронно. Значит — медленно.
Шаг 3: WHOIS и SSL
Добавляется анализ регистрации домена и SSL-сертификатов:
import ssl
import whois
import socket
def get_ssl_info(host):
context = ssl.create_default_context()
with context.wrap_socket(socket.socket(), server_hostname=host) as s:
s.settimeout(3)
s.connect((host, 443))
cert = s.getpeercert()
return cert
def get_whois_info(domain):
try:
return whois.whois(domain)
except:
return None
Теперь в отчёте уже дата регистрации, дата окончания, страна регистрации, организация.
Шаг 4: распараллеливание — вот где ключ
Реальный прорыв — это переход на многопоточность. Используется concurrent.futures:
from concurrent.futures import ThreadPoolExecutor
def scan_subdomain(subdomain):
ip = resolve_dns(subdomain)
status, headers = check_http(subdomain)
whois_data = get_whois_info(subdomain)
ssl_data = get_ssl_info(subdomain)
return (subdomain, ip, status, headers, whois_data, ssl_data)
with ThreadPoolExecutor(max_workers=50) as executor:
results = list(executor.map(scan_subdomain, subdomains))
Это снижает время анализа с 3 часов до нескольких минут. Причём отчёт получается более полный, чем у некоторых платных сканеров.
Шаг 5: вывод в CSV
import csv
def save_results(results, filename="results.csv"):
with open(filename, mode='w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(["Subdomain", "IP", "HTTP", "Headers", "WHOIS", "SSL"])
for row in results:
writer.writerow(row)
Так формируется итоговая таблица, которую можно анализировать, подгружать в BI-инструменты, проверять изменения со временем.
Что дальше: API, безопасность и архитектура
Сегодняшняя работа — это не просто «скрипт для парсинга». Это звено в архитектуре. Потому что понимание внутренней структуры сайта позволяет:
- 📡 Создавать надёжные API-интерфейсы
- 🛡 Выстраивать защиту на уровне DNS и сертификатов
- 📈 Прогнозировать масштабирование (особенно если сайт работает как SaaS)
- 🔍 Быстро находить ошибки и слабые места в сетевой части проекта
А ещё это просто важно — знать, как работает твой сайт. Не по внешнему виду, а на уровне инфраструктуры.
Итог: технология — это внимание
Каждое утро можно начинать с беспокойства. А можно — с исследования. Сегодняшняя новость не про хайп. Она про дисциплину. Про труд. Про то, что код можно сократить в 20 раз. Что задача в 3 часа может быть решена за 3 минуты. Если быть внимательным, включённым и двигаться шаг за шагом.
Технический итог
- ⏱ Ускорение работы скрипта с 3 часов до 3 минут
- 🔎 Проверка более 500 субдоменов с выводом в CSV
- 🧠 Интеграция DNS, SSL, WHOIS, HTTP и API
- 📂 Готовый отчёт и лог ошибок — автоматически
Следующий шаг
В планах — подключение внешних API-сервисов (например, securitytrails.com или crt.sh) и построение визуальной карты доменной структуры. А также — анализ аномалий и возможных зон уязвимости.
Благодарю за внимание. Работа продолжается — с утра и до вечера, но особенно ценными становятся именно такие утренние открытия.