Skip to content

feat(scan)!: block_type + dns_spoofed в ScanReport — сетевой вердикт …#58

Merged
rcd27 merged 1 commit into
mainfrom
feat/scan-block-type
Jun 27, 2026
Merged

feat(scan)!: block_type + dns_spoofed в ScanReport — сетевой вердикт …#58
rcd27 merged 1 commit into
mainfrom
feat/scan-block-type

Conversation

@rcd27

@rcd27 rcd27 commented Jun 27, 2026

Copy link
Copy Markdown
Owner

…блокировки

Полная таксономия блокировки в JSON-выводе scan, чтобы потребитель маршрутизировал по типу блока без перепроверки:

  • block_type: not_blocked / throttled / sni_blocked / ip_blocked / syn_blocked / host_dead / dns_failed (ступенчатый классификатор DNS→TCP→data, reuse status-логики)
  • --alive-via : точечная проба живости IP-blocked хоста → SynBlocked (жив через прокси) vs HostDead (мёртв везде); НЕ маршрутизирует скан (в отличие от --via)
  • Throttled: data-проба ловит DPI data-cap (~16-19КБ) на HEAD-доступном домене; маленькая страница (<32КБ) не ложно-троттлится
  • dns_spoofed: флаг отравления system-DNS (ортогонален block_type; CheckFailed≠spoofed)
  • shared network::reachability (DRY: status переиспользует общую пробу)

BREAKING CHANGE: BlockType переименован Available→NotBlocked и Dead→HostDead. Команда status теперь выдаёт block_type "not_blocked" (было "available") и UI-текст "not blocked"/"host dead". Парсеры status-JSON, ждущие "available", сломаются. ScanReport получил поля block_type и dns_spoofed (аддитивно).

Closes #29

…блокировки

Полная таксономия блокировки в JSON-выводе scan, чтобы потребитель маршрутизировал
по типу блока без перепроверки:

- block_type: not_blocked / throttled / sni_blocked / ip_blocked / syn_blocked /
  host_dead / dns_failed (ступенчатый классификатор DNS→TCP→data, reuse status-логики)
- --alive-via <proxy>: точечная проба живости IP-blocked хоста → SynBlocked (жив
  через прокси) vs HostDead (мёртв везде); НЕ маршрутизирует скан (в отличие от --via)
- Throttled: data-проба ловит DPI data-cap (~16-19КБ) на HEAD-доступном домене;
  маленькая страница (<32КБ) не ложно-троттлится
- dns_spoofed: флаг отравления system-DNS (ортогонален block_type; CheckFailed≠spoofed)
- shared network::reachability (DRY: status переиспользует общую пробу)

BREAKING CHANGE: BlockType переименован Available→NotBlocked и Dead→HostDead.
Команда `status` теперь выдаёт block_type "not_blocked" (было "available") и
UI-текст "not blocked"/"host dead". Парсеры status-JSON, ждущие "available",
сломаются. ScanReport получил поля block_type и dns_spoofed (аддитивно).
@rcd27 rcd27 merged commit 0cc79ed into main Jun 27, 2026
1 check passed
@rcd27 rcd27 deleted the feat/scan-block-type branch June 27, 2026 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

detect IP-based throttling (download test phase)

1 participant