TRACIO аналізує IP-адресу кожного відвідувача на стороні сервера. Він позначає VPN, проксі, вихідні вузли Tor і походження з дата-центрів, а також визначає геолокацію на рівні міста та ASN. Увесь аналіз виконується на стороні сервера без клієнтських залежностей.
IP Intelligence надходить до вашого застосунку через webhook-payload: об'єкт
network (булеві значення VPN/проксі/Tor/дата-центр плюс тип з'єднання) та
об'єкт geo (країна, місто, координати, часовий пояс, ISP) доставляються з кожним
webhook. Повну структуру payload і перевірку підпису дивіться в розділі Webhooks.
Класифікація VPN, проксі, Tor і дата-центру визначається за IP-адресою підключення
за допомогою комерційних баз даних IP Intelligence (IP2Location для типу VPN/проксі/Tor,
MaxMind для геолокації та ASN). Кожна виводиться як окреме булеве значення в об'єкті
network webhook — у публічному 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" }}Збіг вихідного вузла Tor за IP-адресою підключення відображається як network.tor. Окремо
сам Tor Browser виявляється на стороні клієнта за його конфігурацією проти fingerprinting
(стійкість canvas/WebGL, часовий пояс UTC, округлений розмір екрана) — див.
Smart Signals.
Геолокація на рівні міста та ASN визначаються на стороні сервера за IP-адресою підключення
(MaxMind) і доставляються в об'єкті geo webhook.
| Поле | Тип | Опис |
|---|---|---|
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 / між країнами)
не є частиною поточного публічного контракту. Ні webhook-payload, ні
панель керування не надають категорій блоклистів чи інтервалів velocity. Webhook-поверхня
для мережевого ризику обмежена булевими прапорцями network і типом з'єднання;
використовуйте їх разом із полями decision і bot (див.
Smart Signals) для рішень щодо ризику.
Це безпосередньо читає об'єкт network з webhook-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 }}