TRACIO phân tích địa chỉ IP của mọi khách truy cập ở phía máy chủ. Nó gắn cờ VPN, proxy, Tor exit node và nguồn gốc datacenter, đồng thời phân giải định vị địa lý ở cấp thành phố. Toàn bộ quá trình phân tích chạy ở phía máy chủ, không phụ thuộc vào phía máy khách.
IP intelligence đến với ứng dụng của bạn thông qua webhook payload: đối tượng
network (các boolean VPN/proxy/Tor/datacenter cùng loại kết nối) và đối tượng
geo (quốc gia, thành phố, tọa độ, múi giờ) được gửi kèm trong mỗi
webhook. ISP và ASN được bổ sung từ gói Business trở lên. Xem
Webhooks để biết cấu trúc payload đầy đủ và cách xác minh chữ ký.
Việc phân loại VPN, proxy, Tor và datacenter được phân giải từ IP kết nối
bằng các cơ sở dữ liệu IP intelligence thương mại (IP2Location cho loại VPN/proxy/Tor,
MaxMind cho định vị địa lý và ASN). Mỗi loại được hiển thị dưới dạng một boolean duy nhất trên
đối tượng network của webhook — không có phân tích theo từng phương pháp hay điểm tin cậy trong
payload công khai.
| Cờ | Trường | Ý nghĩa |
|---|---|---|
| VPN | network.vpn | IP thuộc về một nhà cung cấp VPN đã biết |
| Proxy | network.proxy | IP là proxy datacenter hoặc residential |
| Tor | network.tor | IP là một Tor exit node đã biết |
| Datacenter | network.datacenter | IP thuộc về một nhà cung cấp cloud/hosting |
{ "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}Proxy datacenter và residential đều hiển thị dưới dạng network.proxy; nguồn gốc
datacenter được báo cáo bổ sung dưới dạng network.datacenter. Việc phân loại đến từ
cơ sở dữ liệu proxy IP2Location, bao phủ các nhà cung cấp cloud/hosting lớn (AWS,
Google Cloud, Azure, Oracle Cloud, Alibaba Cloud, DigitalOcean, Hetzner, OVH,
Linode/Akamai, Vultr và những nhà cung cấp khác).
{ "network": { "vpn": false, "proxy": true, "tor": false, "datacenter": true, "connectionType": "DCH" }}Một kết quả khớp Tor exit node trên IP kết nối sẽ hiển thị dưới dạng network.tor. Riêng biệt với điều đó,
bản thân Tor Browser được nhận diện ở phía máy khách qua cấu hình chống fingerprinting của nó,
độc lập với đường đi trên mạng — xem
Smart Signals.
Định vị địa lý ở cấp thành phố được phân giải ở phía máy chủ từ IP kết nối
(MaxMind) và được gửi trong đối tượng geo của webhook.
| Trường | Kiểu | Mô tả | Gói |
|---|---|---|---|
geo.country | string | Mã quốc gia ISO 3166-1 alpha-2 | Tất cả |
geo.city | string | Tên thành phố | Tất cả |
geo.lat | number | Vĩ độ gần đúng | Tất cả |
geo.lon | number | Kinh độ gần đúng | Tất cả |
geo.timezone | string | Định danh múi giờ IANA | Tất cả |
{ "geo": { "country": "CZ", "city": "Prague", "lat": 50.05, "lon": 14.4, "timezone": "Europe/Prague" }}Ở các gói Business và Enterprise, nhà mạng cũng được xác định. Trong webhook payload,
cả hai trường đều nằm trên đối tượng network:
{ "network": { "vpn": false, "proxy": false, "tor": false, "datacenter": false, "isp": "Comcast Cable", "asn": 7922 }}Khi đọc một phiên qua Data API, cách phân bổ hơi khác: isp nằm
trên geo còn asn nằm trên network. Cùng một dữ liệu, hai bề mặt — hãy đọc trường
từ nơi mà bề mặt bạn đang dùng đặt nó.
Từ gói Pro trở lên, webhook mang theo khối velocity — cho biết khách truy cập đã di
chuyển nhiều đến mức nào trong thời gian gần đây:
| Trường | Kiểu | Mô tả |
|---|---|---|
velocity.events5m | number | Sự kiện từ khách truy cập này trong 5 phút qua |
velocity.uniqueIps | number | Số IP khác nhau ghi nhận cho khách truy cập này |
velocity.uniqueLocations | number | Số vị trí khác nhau ghi nhận cho khách truy cập này |
Khối này có mặt khi các bộ đếm của khách truy cập khả dụng tại thời điểm sự kiện (thường là
pha primary). Thiếu khối này nghĩa là “không có dữ liệu”, không phải bằng 0 — đừng
coi sự vắng mặt của nó là “không có hoạt động bất thường”.
Việc đối chiếu với danh sách chặn IP không thuộc phạm vi hợp đồng công khai: cả webhook
payload lẫn dashboard đều không hiển thị các danh mục danh sách chặn. Bề mặt webhook cho rủi
ro mạng là các cờ boolean network, loại kết nối và các bộ đếm velocity ở trên — hãy sử
dụng chúng cùng với các trường decision và bot (xem
Smart Signals) để đưa ra quyết định về rủi ro.
Đoạn này đọc trực tiếp đối tượng network của webhook payload. Xem
Webhooks để biết payload đầy đủ và cách xác minh chữ ký.
// `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 }}