TRACIO מנתחת את כתובת ה-IP של כל מבקר בצד השרת. היא מסמנת רשתות VPN, פרוקסי, צמתי יציאה של Tor ומקורות מרכזי נתונים (datacenter), ומפענחת גיאולוקציה ברמת עיר. כל הניתוח מתבצע בצד השרת ללא תלות בצד הלקוח.
ה-IP intelligence מגיע ליישום שלך דרך ה-webhook payload:
אובייקט ה-network (ערכים בוליאניים של VPN/פרוקסי/Tor/datacenter, סוג החיבור, ומ-Pro ומעלה
גם proxy_detected) ואובייקט
ה-geo (מדינה, עיר, קואורדינטות, אזור זמן) נמסרים בכל
webhook. ה-ISP, ה-ASN ואובייקט ה-real_ip מתווספים החל מ-Business ומעלה.
ראה Webhooks למבנה ה-payload המלא ולאימות החתימה.
סיווג VPN, פרוקסי, Tor ומרכז נתונים מפוענח מתוך ה-IP המתחבר
באמצעות מסדי נתונים מסחריים של IP intelligence (IP2Location לסוג VPN/פרוקסי/Tor,
MaxMind לגיאולוקציה ו-ASN). כל אחד מארבעת הדגלים הללו מוצג כערך בוליאני יחיד באובייקט
ה-network של ה-webhook — אין פירוט לפי שיטה או ציון ביטחון (confidence score) ב-payload
הציבורי.
| דגל | שדה | משמעות |
|---|---|---|
| VPN | network.vpn | ה-IP שייך לספק VPN מוכר |
| Proxy | network.proxy | ה-IP הוא פרוקסי datacenter או residential |
| Tor | network.tor | ה-IP הוא צומת יציאה מוכר של Tor |
| Datacenter | network.datacenter | ה-IP שייך לספק ענן/אירוח |
{ "network": { "vpn": true, "proxy": true, "tor": false, "datacenter": false, "connection_type": "VPN" }}// `payload` is the webhook delivery body (/docs/webhooks)if (payload.network.vpn) { // visitor is connecting through a VPN}פרוקסי datacenter ו-residential מוצגים שניהם כ-network.proxy; מקור datacenter
מדווח בנוסף כ-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, "connection_type": "DCH" }}network.proxy מסווג את הכתובת שממנה הגיע החיבור. בדיקה נפרדת משווה את תעבורת הדפים של
ביקור לנתיב הרשת הגולמי שלו: כששניהם יוצאים דרך רשתות שונות, יש פרוקסי או VPN בין הדפדפן
לאתר שלכם, והביקור מדווח עם network.proxy_detected: true. שתי כתובות של אותו ספק — NAT
של מפעיל סלולרי, יציאה נוספת של אותו VPN — אינן נספרות.
מ-Business ומעלה, הכתובת הציבורית שנצפתה מאחורי הפרוקסי או ה-VPN נמסרת לצד הכתובת שממנה
הגיע החיבור, יחד עם המדינה וה-ISP שלה, בשדה network.real_ip. השדה חסר כשלא נצפתה כתובת
כזו, ולכן קראו אותו עם שמירה (network.real_ip?.country); השדות country ו-isp חסרים
כשלא ניתן היה לפענח אותם.
{ "network": { "proxy": false, "proxy_detected": true, "real_ip": { "address": "203.0.113.7", "country": "NL", "isp": "KPN" } }}ב-Webhooks שני השדות מגיעים באותם שמות בכל ביקור. סיכום המבקר של
Data API מצרף אותם ל-network.proxy_detected_seen (האם אי פעם היה פרוקסי
לפני הדפדפן) ול-network.last_real_ip (הכתובת העדכנית ביותר, עם המדינה וה-ISP שלה).
התאמה של צומת יציאה של Tor על ה-IP המתחבר מוצגת כ-network.tor. בנפרד,
דפדפן ה-Tor Browser עצמו מזוהה בצד הלקוח לפי תצורת האנטי-פינגרפרינטינג שלו,
ללא תלות בנתיב הרשת — ראה
Smart Signals.
גיאולוקציה ברמת עיר מפוענחת בצד השרת מתוך ה-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": { "country": "CZ", "city": "Prague", "lat": 50.05, "lon": 14.4, "timezone": "Europe/Prague" }}בתוכניות Business ו-Enterprise מזוהה גם הספק. ב-payload של ה-webhook שני השדות יושבים
באובייקט ה-network, וה-ISP חוזר גם כ-geo.isp:
{ "network": { "vpn": false, "proxy": false, "tor": false, "datacenter": false, "isp": "Comcast Cable", "asn": 7922 }}בקריאת סשן דרך ה-Data API החלוקה שונה מעט: isp יושב רק על geo
ו-asn על network. אותם נתונים בשני משטחים — קראו את השדה מהמקום שבו המשטח שבו אתם
משתמשים מציב אותו.
מ-Pro ומעלה ה-webhook נושא בלוק velocity — עד כמה המבקר נע לאחרונה:
| שדה | סוג | תיאור |
|---|---|---|
velocity.events5m | number | אירועים מהמבקר הזה ב-5 הדקות האחרונות |
velocity.unique_ips | number | כתובות IP שונות שנצפו עבור המבקר הזה |
velocity.unique_locations | number | מיקומים שונים שנצפו עבור המבקר הזה |
הבלוק קיים כאשר מוני המבקר זמינים בזמן האירוע (בדרך כלל שלב primary).
היעדר הבלוק משמעו “אין נתונים”, לא אפסים — אל תתייחס להיעדרו כאל “אין פעילות חריגה”.
התאמה מול רשימות חסימה של IP (IP-blocklist) אינה חלק מהחוזה הציבורי: לא ה-webhook
payload ולא לוח הבקרה חושפים קטגוריות רשימות חסימה. משטח ה-webhook לסיכוני רשת הוא דגלי
ה-network הבוליאניים, proxy_detected, אובייקט ה-real_ip ב-Business, סוג החיבור ומוני
ה-velocity שלמעלה; השתמש בהם יחד עם השדות
decision ו-bot (ראה Smart Signals) להחלטות סיכון.
זה קורא ישירות את אובייקט ה-network של ה-webhook payload. ראה
Webhooks ל-payload המלא ולאימות החתימה.
// `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 }}