معنای یک ردیف در مجموعه داده VPN و چرایی اهمیت آن
ارائهدهنده، نقطه پایانی، نشانی خروج و دسترسپذیری چهار ردیف متفاوتاند. واحد را انتخاب کنید، منشأ را نگه دارید، آنچه مجموعه پوشش نمیدهد منتشر کنید.
بپرسید یک ردیف از مجموعه داده VPN چه چیزی را بازنمایی میکند، و پاسخها چند برابر میشوند: یک شرکت، یک شنونده، یک نشانی خروج عمومی، یک نتیجه دسترسپذیری. هر یک مشروع است، و آمیختن آنها بدون برچسب جمعی میسازد که دقیق به نظر میرسد و هیچ معنایی ندارد. واحد یک تصمیم طراحی است و باید پیش از نخستین شمارش گرفته شود. بیشتر سردرگمی در آمار منتشرشده VPN از نادیده گرفتن همین گام میآید.
ردیف یک ادعاست، نه یک چیز
هر ردیف چیزی درباره جهان ادعا میکند، و ادعا موضوعی دارد. نامگذاری موضوع همان چیزی است که ردیف را با ردیف دیگر مقایسهپذیر میکند.
ردیف ارائهدهنده ادعا میکند که سازمانی خدمتی عرضه میکند. ردیف نقطه پایانی ادعا میکند که نشانی و درگاهی مشخص به یک پروتکل سخن میگویند. ردیف خروج ادعا میکند که ترافیک در زمانی از نشانی بیرون رفته است. ردیف اندازهگیری ادعا میکند که کاوشی از جایی نتیجهای را مشاهده کرده است. چهار موضوع، چهار طرحواره، و مجموعه دادهای که آنها را بدون تمایزدهنده میآمیزد هرگز تجمیعپذیر نیست.
تمایزدهنده ارزانترین بخش طرحواره است و همان بخشی که بیشتر از همه حذف میشود.
واحد را پیش از شمارش انتخاب کنید
واحدی را انتخاب کنید که به پرسشی که واقعاً دارید پاسخ میدهد. شمردن نقاط پایانی پاسخ میدهد چند شنونده اعلام شده بود؛ شمردن ارائهدهندگان پاسخ میدهد چند سازمان درگیر بود؛ شمردن نشانیهای خروج پاسخ میدهد چند خاستگاه ظاهری وجود دارد.
این اعداد جایگزین یکدیگر نیستند و تفاوتها بزرگ است. یک ارائهدهنده میتواند هزاران نشانی را اداره کند، و یک نشانی میتواند چند شنونده پروتکلی برای خدمتهای گوناگون میزبانی کند. پس شمارش نشانیها نه کف است و نه سقف برای شمارش ارائهدهندگان. هر بار واحد را در همان جملهای ذکر کنید که عدد آمده است. عدد بدون واحد یک نظر با ممیز است.
| Unit | The row asserts | What a count of it means |
|---|---|---|
| Provider | An organisation offers a service | How many operators appear |
| Endpoint | An address and port speak a protocol | How many listeners were advertised |
| Exit address | Traffic left from an address | How many apparent origins exist |
| Observation | A probe saw a result | How many tests ran, not how many servers |
یک فهرست عمومی مشارکتکنندگان اعلامشده در آن خدمت را فراهم میکند. این فهرست، سیاههای از هر استقرار تجاری، سازمانی و خصوصی در جهان نیست، و چنین پنداشتنش هر آمار مشتقشده را باد میکند.
منشأ جای آن در طرحواره است
ردیفی که منشأ ندارد بازبینیپذیر نیست. رکورد منبع، زمان گردآوری با منطقه زمانی آن، روش مشاهده و وضعیت آخرین مشاهده را ثبت کنید.
ویژگیهای اعلامشده را از ویژگیهای مشاهدهشده جدا نگه دارید، چون وزن متفاوتی دارند. برچسب کشور در یک فهرست یک ادعای اعلامشده است و اثبات موقعیت فیزیکی یک سرور نیست. تخصیص IP یک بلوک شبکه را مشخص میکند، نه هر مستأجر درون آن و نه گرداننده کنونی یک برنامه بر فراز آن. دو ستون و یک یادداشت هر بار بر یک میدان ادغامشده پیروز میشوند.
{"endpoint": "203.0.113.10:1194/udp", "unit": "endpoint", "advertised_country": "NL",
"observed_at": "2026-11-03T02:15:00Z", "method": "udp_probe", "last_seen": "2026-11-03"}
یک خط JSON طرحواره را ملموس میکند و بحث درباره آن آسانتر از یک بند توصیف است. توجه کنید که برچسب زمان منطقه زمانی دارد و روش نامیده میشود نه تلویح.
بر اساس پرسش، تکراریها را حذف کنید
تکراریها به واحد بستگی دارند. همان نشانی با دو شنونده پروتکلی یک جفت نقطه پایانی و دو خدمت است، و ادغام خاموش آن شمارش را تغییر میدهد.
تکراریها را در سطحی که پرسش از آن میپرسد حذف کنید و ثبت کنید چند ردیف خام در هر ردیف نگهداشتهشده فرو ریخت. این نسبت خودش یک یافته است، چون فرو ریختن بزرگ معمولاً یعنی منبع رکوردها را به ازای هر شنونده منتشر میکند. ارائهدهندهای با نشانیهای بسیار الگوی معکوس میسازد. هر دو درستاند و تنها نسبت ثبتشده به خواننده اجازه میدهد آنها را از هم تشخیص دهد.
سپس ردیفهای خام را نگه دارید. جدول بدون تکراری یک نماست و توان بازسازی آن از ورودی خام همان چیزی است که نتیجه را بازتولیدپذیر میکند.
بیانیه پوشش را منتشر کنید
بیان کنید منابع چگونه انتخاب شدند، کدام منطقهها یا شبکهها را پوشش میدهند و چه چیزی عمداً غایب است.
نقاط پایانی شرکتی خصوصی و استقرارهای اعلامنشده هرگز در فهرستهای عمومی ظاهر نمیشوند، پس غیبت در یک فهرست فقط ثابت میکند که فهرست آن را نیاورده است. پیش از انتشار، شرایط منبع و اجازههای بازتوزیع را بررسی کنید و میدانهایی را که هرگز لازم نبودند حذف کنید. پژوهش نقاط پایانی بهندرت هویت مشترکان، اعتبارنامهها یا تاریخچه مرور را میطلبد. انتشار آنها پروژهای دیگر با توجیهی دیگر میبود.
wc -l vpn-endpoints.jsonl
jq -r '.unit' vpn-endpoints.jsonl | sort | uniq -c
jq -r '.advertised_country' vpn-endpoints.jsonl | sort | uniq -c | sort -rn | head
آن سه فرمان شمار ردیفها، تفکیک واحدها و طرحی از پوشش بر پایه کشور اعلامشده را میدهند. وقتی جمعیت تغییر میکند عکسهای تاریخدار نگه دارید و کهنه را از غیبت تأییدشده جدا کنید. مجموعه دادهای محدود با جمعیتی روشن بر ادعای بیپشتوانهای که همه VPNهای اینترنت را در بر دارد برتری دارد.