رفتن به محتوا

در ISP، Datacenter و Gaming هر رکورد لاگ یک اتصال است، نه یک درخواست منفرد: رکورد هنگام بسته شدن اتصال نوشته می‌شود. در HTTP ساده، یک اتصال keep-alive می‌تواند چند درخواست را حمل کند؛ فیلد request فقط اولی را نشان می‌دهد. اتصالی که هنوز باز است، تا بسته نشود در فهرست دیده نمی‌شود.

هر رکورد، مستقل از نوع سرویس، با همان مجموعه ثابت کلیدها برمی‌گردد؛ کلیدی که مقدار ندارد null است و هرگز حذف نمی‌شود. کلیدهای مخصوص خانواده ISP در رکوردهایMobile/Residential همیشه null هستند و statusCode در خانواده ISP همیشه null است. فهرست از جدیدترین رکورد به قدیمی‌ترین مرتب است.

سه دام

فیلدها

✓ یعنی در این نوع مقدار دارد و null یعنی در این نوع همیشه خالی است. فیلدی که ✓ دارد هم اگر برای آن اتصال مقداری ثبت نشده باشد، ممکن است null باشد.

فیلدخانواده ISPMobile / Residentialمعنا
id✓✓شناسه رکورد. در خانواده ⁨ISP⁩ با requestId یکسان است (⁨ULID⁩)؛ در رکوردهای پیش از 17 سپتامبر 2026 یک شناسه پایدار و مشتق‌شده است.
timestamp✓✓⁨ISO-8601⁩، ⁨UTC⁩. در خانواده ⁨ISP⁩ لحظه بسته شدن اتصال، با دقت ثانیه. فهرست از جدیدترین به قدیمی‌ترین مرتب است.
level✓✓connect، disconnect، error، quota یا auth. در خانواده ⁨ISP⁩ از result به دست می‌آید (جدول کدهای نتیجه).
message✓✓خلاصه‌ای خوانا برای انسان، مثلاً HTTP CONNECT → example.com:443. در خانواده ⁨ISP⁩، در رکوردهای ناموفقی که اطلاعات اتصال ندارند، توضیح خوانا و کد نتیجه است (مثلاً This command/protocol is not supported (#103)). قالب آن ممکن است تغییر کند؛ آن را تجزیه نکنید و فیلدهای مربوط را بخوانید.
method✓✓دستور یا متد ⁨HTTP⁩: ⁨CONNECT, GET, POST …⁩ در خانواده ⁨ISP⁩ با command یکسان است (از جمله ⁨UDP ASSOCIATE⁩). اگر اتصال پیش از رسیدن به آن مرحله رد شده باشد، null.
ip✓✓هدف، به شکل ⁨host:port⁩ (اگر نام میزبان نباشد، IP). در اتصالی که پیش از تعیین هدف رد شده باشد، null.
sourceIp✓✓IP کلاینت شما؛ ماشینی که به پروکسی وصل می‌شود.
bytesIn✓✓بایت‌های دانلودشده (از هدف به شما).
bytesOut✓✓بایت‌های آپلودشده (از شما به هدف).
durationMs✓✓مدتی که اتصال باز مانده است، بر حسب میلی‌ثانیه. تأخیر نیست.
statusCodenull✓کد وضعیت ⁨HTTP⁩. فقط ⁨Mobile/Residential⁩.
headersnull✓هدرهای ⁨HTTP⁩ درخواست (متن ⁨JSON⁩). فقط ⁨Mobile/Residential⁩.
requestId✓nullشناسه یکتای اتصال (یک ⁨ULID⁩ با 26 کاراکتر). در درخواست پشتیبانی همین را بفرستید. در رکوردهای پیش از 17 سپتامبر 2026، null.
result✓nullکد نتیجه (جدول زیر). در رکوردهای پیش از 17 سپتامبر 2026، null.
resultCategory✓nullsuccess، client، policy، upstream یا unknown. اگر result برابر null باشد، از ok به دست می‌آید: success یا unknown.
ok✓nullآیا اتصال موفق بوده است (true / false).
errorCode✓nullشکل متنی 5 رقمی result، مثلاً 00104 (در صورت موفقیت 00000). اگر result برابر null باشد، null.
service✓nullپروتکلی که واقعاً استفاده شده است: http یا socks (⁨SOCKS5⁩). در پروتکل auto یک پورت هر دو را می‌پذیرد. اگر اتصال پیش از رسیدن به آن مرحله رد شده باشد، null.
proxyType✓nullنام قدیمی؛ همان مقدار service.
command✓null⁨CONNECT, GET, POST …⁩ یا ⁨UDP ASSOCIATE⁩ (⁨UDP⁩ روی ⁨SOCKS5⁩؛ در پروتکل auto پشتیبانی می‌شود). اگر اتصال پیش از رسیدن به آن مرحله رد شده باشد، null.
request✓nullنخستین خط درخواست در اتصال. در اتصال ⁨keep-alive⁩ فقط اولی ثبت می‌شود. اگر اتصال پیش از خواندن درخواست رد شده باشد، null.
targetHost✓nullنام میزبان هدف (اگر مستقیم به IP وصل شده باشد، همان IP). اگر پیش از تعیین هدف رد شده باشد، null.
targetIp✓nullIP حل‌شده هدف. اگر به هدف وصل نشده باشد، null.
targetPort✓nullپورت هدف. اگر پیش از تعیین هدف رد شده باشد، null.
targetInfo✓nullقالب قدیمی: targetIp:targetPort.
clientPort✓nullپورت مبدأ کلاینت شما.
gateIp✓nullآدرس پروکسی (ورودی) که به آن وصل می‌شوید؛ معمولاً همان host در فهرست پروکسی. IP خروجی شما نیست.
gatePort✓nullپورت پروکسی‌ای که به آن وصل می‌شوید.
egressIp✓nullهمان IP واقعی که ترافیک شما از آن به اینترنت خارج می‌شود؛ آدرسی که سایت هدف می‌بیند. در هر اتصال ثبت نمی‌شود و اگر نباشد null است (در رکوردهای پیش از 17 سپتامبر 2026 همیشه null).
extIp✓nullنام قدیمی؛ همان مقدار egressIp.
latencyMs✓nullتأخیر برقراری اتصال به هدف، بر حسب میلی‌ثانیه. اگر اندازه‌گیری نشده باشد null است؛ 0 نیست.
totalBytes✓nullbytesIn + bytesOut.
slot✓nullشماره اسلات پورت سفارش. در رکوردهای پیش از 17 سپتامبر 2026، null.

کدهای نتیجه

فقط ISP، Datacenter و Gaming. توضیحات، متن‌هایی هستند که می‌توانید به مشتریانتان نشان دهید. ممکن است کدهای جدیدی اضافه شوند؛ کد ناشناخته را خطا در نظر بگیرید.

resulterrorCodeHTTPدستهlevelمعنا
000000200successconnectاتصال موفق
10000100407clientauthنام کاربری یا رمز عبور نادرست است
10100101403clientauthآدرس IP شما برای این سفارش مجاز نیست
10200102400clienterrorقالب درخواست نادرست است
10300103—clienterrorاین دستور/پروتکل پشتیبانی نمی‌شود
10400104403policyerrorاجازه دسترسی به آدرس هدف را ندارید
10500105403policyquotaسهمیه تمام شده است
10600106429policyquotaمحدودیت اتصال پر شده است
10700107403policyerrorپورت هدف مسدود شده است
20000200502upstreamerrorسرور هدف در دسترس نبود
20100201—clientdisconnectاتصال توسط کلاینت بسته شد (خطای سرویس نیست)
———unknownerrorکد ناشناخته؛ آن را خطا در نظر بگیرید

دسته‌های نتیجه

resultCategoryمعنا
successاتصال برقرار شد.
clientناشی از سمت کلاینت: اطلاعات ورود یا مجوز IP، قالب درخواست، دستور پشتیبانی‌نشده یا بسته شدن اتصال توسط کلاینت.
policyسیاست استفاده یا محدودیت حساب: هدف مسدود، سهمیه، اتصال هم‌زمان، پورت بسته.
upstreamاتصال به هدف برقرار نشد؛ دوباره تلاش کنید.
unknownکد ناشناخته (یا رکورد ناموفقی متعلق به پیش از 17 سپتامبر 2026).

فیلتر کردن

ok، result، category، request_id، client_ip، egress_ip، target_host، service،udp، slot، port و min_latency_ms فقط در این انواع معتبرند. status_group در اینجا 400 برمی‌گرداند.

status_group (2xx، 4xx، 5xx) فقط در این انواع معتبر است. ip در اینجا در آدرس هدف یا کلاینت جستجو می‌شود. ارسال پارامتری مخصوص خانواده ISP، 400 invalid_request برمی‌گرداند؛ details.field پارامتر را مشخص می‌کند.

یک پارامتر ناشناخته یا بازه زمانی‌ای که آغازش پس از پایانش باشد نیز 400 برمی‌گرداند. همه پارامترها در نقطه پایانیلاگ‌ها آمده‌اند.

فهرست ناقص

meta.partial در هر پاسخ برمی‌گردد. اگر true باشد، ممکن است فهرست ناقص باشد: در خانواده ISP رکوردهای قدیمی در آن لحظه قابل خواندن نبوده‌اند و درMobile/Residential فقط جدیدترین رکوردها برگشته‌اند. کمی بعد دوباره تلاش کنید. اگر مخزن لاگ موقتاً در دسترس نباشد، 503 service_unavailable برمی‌گردد.

رکوردهای پیش از 17 سپتامبر 2026

رکوردهای سیستم لاگ قدیمی چگونه برمی‌گردند

سیستم لاگ ISP، Datacenter و Gaming در 17 سپتامبر 2026 نوسازی شد. رکوردهای قدیمی‌تر هم در فهرست برمی‌گردند (پس از رکوردهای جدید)، اما فیلدهایی که در آن سیستم وجود نداشتند null هستند: requestId، result، errorCode، egressIp، extIp، latencyMs و slot. در این رکوردها level فقط connect یا error و resultCategory فقط success یا unknown است؛ id یک شناسه پایدار و مشتق‌شده است.

فیلترهایی که فقط بر فیلدهای سیستم جدید تکیه دارند (ok، result، category، request_id، egress_ip، target_host،udp، slot، port، min_latency_ms) و جستجوی بخشی از آدرس در پارامتر ip فقط رکوردهای 17 سپتامبر 2026 و پس از آن را برمی‌گردانند. خط زمانی لاگ و شمارنده‌های مصرف در جزئیات سرویس نیز فقط سیستم جدید را پوشش می‌دهند.

اگر رکوردهای قدیمی در آن لحظه قابل خواندن نباشند، پاسخ باز هم برمی‌گردد اما meta.partial برابر true می‌شود. در همین حالت، در تاریخچه مصرف meta.availableبرابر false برمی‌گردد.

تغییرات ناسازگار با نسخه قبلی
  • extIp اکنون IP خروجی واقعی است (همان egressIp). پیش‌تر آدرس پروکسی‌ای را که به آن وصل می‌شدید در خود داشت؛ آن آدرس اکنون در gateIp + gatePort است.
  • parentInfo حذف شد.
  • در رکوردهای ISP، id اکنون همان requestId است (ULID).
  • timestamp اکنون لحظه بسته شدن اتصال است و دقت آن ثانیه است.
  • level اکنون مقادیر auth، quota و disconnect را هم می‌گیرد.
  • هر رکورد با همان مجموعه ثابت کلیدها برمی‌گردد. کلیدهای جدیدی اضافه شدند: requestId، result، gateIp، egressIp، latencyMs و دیگر کلیدها.
  • proxyType اکنون فقط http یا socks است (همان service)؛ مقدار ناشناخته null برمی‌گردد.
  • در خانواده ISP، مقدار source در نقطه‌های پایانی مصرف اکنون logs است.
  • در لاگ‌های Mobile/Residential، bytesIn و bytesOut جابه‌جا برمی‌گشتند. اکنون در همه انواع bytesIn بایت‌های دانلودشده و bytesOut بایت‌های آپلودشده است (از جمله رکوردهای گذشته).

در درخواست پشتیبانی، requestId را بفرستید

وقتی درباره یک اتصال کمک می‌خواهید، مقدار requestId آن رکورد را بفرستید؛ تیم پشتیبانی دقیقاً همان اتصال را با آن پیدا می‌کند. خودتان هم می‌توانید همان اتصال را با پارامترrequest_id جستجو کنید. این همان request_id پاسخ‌های خطا نیست: آن یکی درخواست API شما را شناسایی می‌کند و این یکی یک اتصال پروکسی را.