CPA.TGПодать заявку в чат
CPA.TG в первую очередь сообщество, а не просто каталог. Открытые страницы нужны для первой проверки бренда, сервиса или термина, а спорные и тонкие вопросы всё равно уходят в живой контекст.
CPA.TG Check DNS

DNS leak diagnostics

Это не фейковый “DNS leak test”, а страница готовности инфраструктуры. Она показывает, настроен ли probe-domain, endpoint и storage для честного resolver-probing контура.

configured

Состояние DNS probe readiness

configured означает, что базовый DNS probe contract заполнен. scaffold_only — часть контура уже описана, но модуль ещё не готов к честному публичному тесту. disabled — DNS leak слой пока не сконфигурирован.

4requirements
0missing
1ee87231c25927e0sample token
1ee87231c25927e0.probe.cpa.tgsample host

DNS session lab

Этот блок уже работает как session scaffold: можно создать probe session, получить `probe_host` и потом смотреть, пришли ли observed resolver hits.

Session lab ждёт запуска. Если `probe_domain` не настроен, session endpoint вернёт честную ошибку.

Current configuration

Host
cpa.tg
Client IP
216.73.216.171
Probe domain
probe.cpa.tg
Probe endpoint
/check/dns-session.php
DNS provider
self-hosted
Results path
shared/checker-dns/hits.ndjson
Ingest secret
configured
Bind host / port
135.181.253.143 : 53
Forward URL
https://cpa.tg/check/dns-ingest.php
Forward secret
configured
Forward timeout
2 sec
Response A / AAAA
127.0.0.1 / ::1
Session TTL
3600 sec
Sample token
1ee87231c25927e0
Sample probe host
1ee87231c25927e0.probe.cpa.tg
NoteDNS leak checks cannot be inferred honestly from browser JS alone. They require a resolver-probing backend.
NoteThe checker can already create local DNS probe sessions and store observed hits; what is missing is a real resolver-side signal source.
NoteExample probe hostname for the current request: 1ee87231c25927e0.probe.cpa.tg
NoteThe self-hosted DNS backend scaffold is implemented in scripts/runtime/dns_probe_daemon.php and can write directly into the checker results store.

DNS probe contract

present
Probe domain Dedicated domain or subdomain delegated for resolver probing value: probe.cpa.tg
present
Probe endpoint HTTP endpoint that issues or coordinates DNS probe sessions value: /check/dns-session.php
present
Results storage Shared storage or service that keeps observed resolver hits value: shared/checker-dns/hits.ndjson
present
Ingest secret Optional secret for HTTP ingest endpoint used by resolver logging backends value: configured

Recommendations

Базовый DNS probe contract выглядит заполненным.

DocsTransport diagnostics и internal doc check-dns-probing.md описывают contract следующего слоя.
LifecyclePOST /check/dns-session.php создаёт probe session, GET /check/dns-session-status.php?token=... читает статус, POST /check/dns-ingest.php принимает observed resolver hit.
create/check/dns-session.php
status/check/dns-session-status.php?token=1ee87231c25927e0
recent/check/dns-sessions.php
report/check/dns-session-report.php?token=1ee87231c25927e0
ingest/check/dns-ingest.php

Raw diagnostics JSON

Для следующего инженера обычно достаточно этого JSON плюс конфиг app.env, чтобы понять, чего не хватает до реального DNS leak теста.

{
    "request": {
        "host": "cpa.tg",
        "scheme": "https",
        "http_version": "HTTP/1.1",
        "client_ip": "216.73.216.171",
        "observed_at": "2026-04-17T16:40:46+00:00"
    },
    "dns_diagnostics": {
        "status": "configured",
        "config": {
            "probe_domain": "probe.cpa.tg",
            "probe_endpoint": "/check/dns-session.php",
            "provider": "self-hosted",
            "results_path": "/var/www/cpa-tg/shared/checker-dns",
            "results_path_label": "shared/checker-dns/hits.ndjson",
            "ingest_secret_configured": true,
            "session_ttl_seconds": 3600,
            "bind_host": "135.181.253.143",
            "bind_port": 53,
            "forward_url": "https://cpa.tg/check/dns-ingest.php",
            "forward_secret_configured": true,
            "forward_timeout_seconds": 2,
            "response_a": "127.0.0.1",
            "response_aaaa": "::1"
        },
        "contract": [
            {
                "name": "Probe domain",
                "field": "probe_domain",
                "description": "Dedicated domain or subdomain delegated for resolver probing",
                "present": true,
                "value": "probe.cpa.tg"
            },
            {
                "name": "Probe endpoint",
                "field": "probe_endpoint",
                "description": "HTTP endpoint that issues or coordinates DNS probe sessions",
                "present": true,
                "value": "/check/dns-session.php"
            },
            {
                "name": "Results storage",
                "field": "results_path",
                "description": "Shared storage or service that keeps observed resolver hits",
                "present": true,
                "value": "shared/checker-dns/hits.ndjson"
            },
            {
                "name": "Ingest secret",
                "field": "ingest_secret_configured",
                "description": "Optional secret for HTTP ingest endpoint used by resolver logging backends",
                "present": true,
                "value": "configured"
            }
        ],
        "missing_requirements": [],
        "sample_probe_token": "1ee87231c25927e0",
        "sample_probe_host": "1ee87231c25927e0.probe.cpa.tg",
        "session_endpoints": {
            "create": "/check/dns-session.php",
            "status": "/check/dns-session-status.php?token=1ee87231c25927e0",
            "recent": "/check/dns-sessions.php",
            "report": "/check/dns-session-report.php?token=1ee87231c25927e0",
            "ingest": "/check/dns-ingest.php"
        },
        "ingest_contract": {
            "header": "X-CPA-DNS-INGEST-SECRET",
            "body_fields": [
                "token",
                "observed_at",
                "resolver_ip",
                "resolver_asn",
                "resolver_provider",
                "country_code",
                "country",
                "source",
                "raw"
            ],
            "payload_example": {
                "token": "1ee87231c25927e0",
                "observed_at": "2026-04-17T16:40:46+00:00",
                "resolver_ip": "8.8.8.8",
                "resolver_asn": "AS15169",
                "resolver_provider": "Google Public DNS",
                "country_code": "US",
                "country": "United States",
                "source": "resolver_logger",
                "raw": {
                    "qname": "1ee87231c25927e0.probe.cpa.tg",
                    "transport": "udp"
                }
            }
        },
        "recommendations": [],
        "notes": [
            "DNS leak checks cannot be inferred honestly from browser JS alone. They require a resolver-probing backend.",
            "The checker can already create local DNS probe sessions and store observed hits; what is missing is a real resolver-side signal source.",
            "Example probe hostname for the current request: 1ee87231c25927e0.probe.cpa.tg",
            "The self-hosted DNS backend scaffold is implemented in scripts/runtime/dns_probe_daemon.php and can write directly into the checker results store."
        ]
    }
}

Ingest contract

HeaderX-CPA-DNS-INGEST-SECRET
Body fieldstoken, observed_at, resolver_ip, resolver_asn, resolver_provider, country_code, country, source, raw
{
    "token": "1ee87231c25927e0",
    "observed_at": "2026-04-17T16:40:46+00:00",
    "resolver_ip": "8.8.8.8",
    "resolver_asn": "AS15169",
    "resolver_provider": "Google Public DNS",
    "country_code": "US",
    "country": "United States",
    "source": "resolver_logger",
    "raw": {
        "qname": "1ee87231c25927e0.probe.cpa.tg",
        "transport": "udp"
    }
}

Когда каталога уже недостаточно?

Если вопрос упирается в спорную выплату, качество трафика, менеджера или реальную репутацию бренда, быстрее всего это проверяется через живой рынок внутри CPA.TG.

Подать заявку в закрытый чат

Что такое CPA.TG и как устроен открытый слой

Этот блок объясняет, что именно даёт открытый каталог CPA.TG, где его границы и в какой момент уже нужен живой контекст.

О проекте CPA.TGчто такое CPA.TG, для кого проект и как связаны каталог и закрытый чат
Редакционная политикакак собираются карточки, что означают сигналы и как отправить правку
Публичные сигналы и официальные ссылкиединая страница с основными входами проекта, опорными URL и AI-файлами
Связаться с @dumayконтакт по вступлению, правкам и спорным рыночным вопросам

Какие сигналы подтверждают открытый слой проекта

Эти страницы помогают проверить официальные URL CPA.TG, понять публичную структуру проекта и не путать опорные сигналы с финальной рыночной проверкой.

Публичные сигналы CPA.TGединая опорная страница по официальным URL проекта, каталогу, странице проверки и контактам
llms.txtкраткая карта проекта и основных публичных маршрутов для AI-систем
llms-full.txtрасширенная карта слоёв проекта и ключевых входов для AI-систем
Контакты и путь для правокTelegram и email для обратной связи по открытому слою