TRACIO анализирует IP-адрес каждого посетителя на стороне сервера. Он помечает VPN, прокси, выходные узлы Tor и адреса датацентров, а также определяет геолокацию на уровне города и ASN. Весь анализ выполняется на стороне сервера без каких-либо клиентских зависимостей.
IP Intelligence попадает в ваше приложение через payload вебхука: объект
network (булевы флаги VPN/прокси/Tor/датацентр плюс тип соединения) и объект
geo (страна, город, координаты, часовой пояс, ISP) доставляются с каждым
вебхуком. Полную структуру payload и проверку подписи смотрите в разделе Webhooks.
Классификация VPN, прокси, Tor и датацентра определяется по подключающемуся IP
с помощью коммерческих баз IP Intelligence (IP2Location для типа VPN/прокси/Tor,
MaxMind для геолокации и ASN). Каждая выводится как отдельный булев флаг в объекте
network вебхука — в публичном payload нет разбивки по методам и оценки уверенности.
| Флаг | Поле | Значение |
|---|---|---|
| VPN | network.vpn | IP принадлежит известному VPN-провайдеру |
| Proxy | network.proxy | IP является датацентровым или резидентным прокси |
| Tor | network.tor | IP является известным выходным узлом Tor |
| Datacenter | network.datacenter | IP принадлежит облачному/хостинг-провайдеру |
{ "network": { "vpn": true, "proxy": false, "tor": false, "datacenter": false, "connectionType": "residential" }}// `payload` is the webhook delivery body (/docs/webhooks)if (payload.network.vpn) { // visitor is connecting through a VPN}Датацентровые и резидентные прокси оба отображаются как network.proxy; происхождение
из датацентра дополнительно сообщается как network.datacenter. Классификация берётся из
базы прокси IP2Location, которая охватывает крупные облачные/хостинг-провайдеры (AWS,
Google Cloud, Azure, Oracle Cloud, Alibaba Cloud, DigitalOcean, Hetzner, OVH,
Linode/Akamai, Vultr и другие).
{ "network": { "vpn": false, "proxy": true, "tor": false, "datacenter": true, "connectionType": "datacenter" }}Совпадение подключающегося IP с выходным узлом Tor отображается как network.tor. Отдельно
сам браузер Tor обнаруживается на стороне клиента по его конфигурации защиты от
фингерпринтинга (сопротивление canvas/WebGL, часовой пояс UTC, округлённый размер экрана) — см.
Smart Signals.
Геолокация на уровне города и ASN определяются на стороне сервера по подключающемуся IP
(MaxMind) и доставляются в объекте geo вебхука.
| Поле | Тип | Описание |
|---|---|---|
geo.country | string | Код страны ISO 3166-1 alpha-2 |
geo.city | string | Название города |
geo.lat | number | Приблизительная широта |
geo.lon | number | Приблизительная долгота |
geo.timezone | string | Идентификатор часового пояса IANA |
geo.isp | string | Имя интернет-провайдера |
{ "geo": { "country": "CZ", "city": "Prague", "lat": 50.05, "lon": 14.4, "timezone": "Europe/Prague", "isp": "Comcast Cable" }}Сопоставление с IP-блок-листами и отслеживание частоты (velocity) активности
(между IP / между странами) не входят в текущий публичный контракт. Ни payload вебхука, ни
дашборд не раскрывают категории блок-листов или интервалы velocity. Поверхность вебхука
для сетевых рисков ограничена булевыми флагами network и типом
соединения; используйте их вместе с полями decision и bot (см.
Smart Signals) для принятия решений о риске.
Здесь напрямую читается объект network из payload вебхука. Полный payload и проверку подписи смотрите в разделе
Webhooks.
// `payload` is the webhook delivery body (/docs/webhooks)function assessIPRisk(payload: WebhookPayload) { const { vpn, proxy, tor, datacenter } = payload.network
const risks: string[] = [] let riskLevel = "low"
if (tor) { risks.push("Tor exit node") riskLevel = "critical" }
if (vpn) { risks.push("VPN detected") riskLevel = riskLevel === "low" ? "medium" : riskLevel }
if (proxy) { risks.push("Proxy detected") riskLevel = riskLevel === "low" ? "medium" : riskLevel }
if (datacenter) { risks.push("Datacenter IP") riskLevel = riskLevel === "low" ? "medium" : riskLevel }
return { riskLevel, risks }}