TRACIO analyserar varje besökares IP-adress på serversidan. Det flaggar VPN:er, proxyservrar, Tor-exitnoder och datacenterursprung, och löser upp geolokalisering på stadsnivå. All analys körs på serversidan utan beroenden på klientsidan.
IP Intelligence når din applikation via webhook-payloaden: network-objektet
(booleska värden för VPN/proxy/Tor/datacenter samt anslutningstyp) och
geo-objektet (land, stad, koordinater, tidszon) levereras med varje
webhook. ISP och ASN tillkommer från Business och uppåt. Se
Webhooks för den fullständiga payload-strukturen och signaturverifiering.
Klassificering av VPN, proxy, Tor och datacenter löses upp från den anslutande IP:n
med hjälp av kommersiella IP Intelligence-databaser (IP2Location för VPN/proxy/Tor-typ,
MaxMind för geolokalisering och ASN). Var och en visas som ett enskilt booleskt värde i
webhookens network-objekt – det finns ingen uppdelning per metod eller något konfidensvärde i
den publika payloaden.
| Flagga | Fält | Betydelse |
|---|---|---|
| VPN | network.vpn | IP:n tillhör en känd VPN-leverantör |
| Proxy | network.proxy | IP:n är en datacenter- eller residentiell proxy |
| Tor | network.tor | IP:n är en känd Tor-exitnod |
| Datacenter | network.datacenter | IP:n tillhör en moln-/hostingleverantör |
{ "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}Både datacenter- och residentiella proxyservrar visas som network.proxy; datacenterursprung
rapporteras dessutom som network.datacenter. Klassificeringen kommer från
IP2Location-proxydatabasen, som täcker de stora moln-/hostingleverantörerna (AWS,
Google Cloud, Azure, Oracle Cloud, Alibaba Cloud, DigitalOcean, Hetzner, OVH,
Linode/Akamai, Vultr med flera).
{ "network": { "vpn": false, "proxy": true, "tor": false, "datacenter": true, "connectionType": "DCH" }}En matchning mot en Tor-exitnod på den anslutande IP:n visas som network.tor. Separat
känns själva Tor-webbläsaren igen på klientsidan på sin anti-fingerprinting-konfiguration,
oberoende av nätverksvägen – se
Smart Signals.
Geolokalisering på stadsnivå löses upp på serversidan från den anslutande IP:n
(MaxMind) och levereras i webhookens geo-objekt.
| Fält | Typ | Beskrivning | Plan |
|---|---|---|---|
geo.country | string | ISO 3166-1 alpha-2 landskod | Alla |
geo.city | string | Stadsnamn | Alla |
geo.lat | number | Ungefärlig latitud | Alla |
geo.lon | number | Ungefärlig longitud | Alla |
geo.timezone | string | IANA-tidszonsidentifierare | Alla |
{ "geo": { "country": "CZ", "city": "Prague", "lat": 50.05, "lon": 14.4, "timezone": "Europe/Prague" }}På planerna Business och Enterprise identifieras även operatören. I webhook-payloaden
ligger båda fälten på network-objektet:
{ "network": { "vpn": false, "proxy": false, "tor": false, "datacenter": false, "isp": "Comcast Cable", "asn": 7922 }}Vid en sessionsläsning via Data API är uppdelningen något
annorlunda: isp ligger på geo och asn på network. Samma data, två ytor – läs
fältet där den yta du använder placerar det.
Från Pro och uppåt bär webhooken med sig ett velocity-block – hur mycket besökaren har
rört på sig den senaste tiden:
| Fält | Typ | Beskrivning |
|---|---|---|
velocity.events5m | number | Händelser från denna besökare de senaste 5 minuterna |
velocity.uniqueIps | number | Distinkta IP:n som setts för denna besökare |
velocity.uniqueLocations | number | Distinkta platser som setts för denna besökare |
Blocket finns med när besökarräknarna är tillgängliga vid händelsetillfället (normalt
primary-fasen). Ett block som saknas betyder ”inga data”, inte nollor – tolka inte dess
frånvaro som ”ingen ovanlig aktivitet”.
Matchning mot IP-blockeringslistor ingår inte i det publika kontraktet: varken
webhook-payloaden eller dashboarden exponerar blockeringslistkategorier. Webhook-ytan för
nätverksrisk utgörs av de booleska network-flaggorna, anslutningstypen och
velocity-räknarna ovan – använd dessa tillsammans med fälten decision och bot (se
Smart Signals) för riskbeslut.
Detta läser webhook-payloadens network-objekt direkt. Se
Webhooks för den fullständiga payloaden och signaturverifiering.
// `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 }}