TRACIO анализирует IP-адрес каждого посетителя на стороне сервера. Он помечает VPN, прокси, выходные узлы Tor и адреса датацентров, а также определяет геолокацию на уровне города. Весь анализ выполняется на стороне сервера без каких-либо клиентских зависимостей.
IP Intelligence попадает в ваше приложение через payload вебхука: объект
network (булевы флаги VPN/прокси/Tor/датацентр плюс тип соединения) и объект
geo (страна, город, координаты, часовой пояс) доставляются с каждым
вебхуком. ISP и ASN добавляются на тарифах Business и выше. Полную структуру 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": true, "tor": false, "datacenter": false, "connectionType": "VPN" }}// `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": "DCH" }}Совпадение подключающегося IP с выходным узлом Tor отображается как network.tor. Отдельно
сам браузер Tor распознаётся на стороне клиента по его конфигурации защиты от
фингерпринтинга — независимо от сетевого пути — см.
Smart Signals.
Геолокация на уровне города определяется на стороне сервера по подключающемуся 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": { "country": "CZ", "city": "Prague", "lat": 50.05, "lon": 14.4, "timezone": "Europe/Prague" }}На тарифах Business и Enterprise дополнительно определяется оператор связи. В payload
вебхука оба поля лежат на объекте network:
{ "network": { "vpn": false, "proxy": false, "tor": false, "datacenter": false, "isp": "Comcast Cable", "asn": 7922 }}При чтении сессии через Data API раскладка немного другая:
isp лежит на geo, а asn — на network. Данные те же, поверхности две —
читайте поле оттуда, куда его кладёт используемая вами поверхность.
На тарифах Pro и выше вебхук несёт блок velocity — насколько активно посетитель
перемещался в последнее время:
| Поле | Тип | Описание |
|---|---|---|
velocity.events5m | number | События этого посетителя за последние 5 минут |
velocity.uniqueIps | number | Различные IP, замеченные у этого посетителя |
velocity.uniqueLocations | number | Различные локации, замеченные у этого посетителя |
Блок присутствует, когда счётчики посетителя доступны на момент события
(как правило, фаза primary). Отсутствие блока означает «нет данных», а не нули —
не трактуйте его отсутствие как «необычной активности нет».
Сопоставление с IP-блок-листами не входит в публичный контракт: ни payload вебхука, ни
дашборд не раскрывают категории блок-листов. Поверхность вебхука для сетевых рисков — это
булевы флаги network, тип соединения и счётчики velocity выше; используйте их вместе с
полями 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 }}