اسأل عما يمثله صف واحد في مجموعة بيانات VPN، فتتعدد الإجابات: شركة، أو مستمع، أو عنوان خروج عام، أو نتيجة إمكانية وصول. كل منها مشروع، وخلطها بلا تسميات ينتج إجمالًا يبدو دقيقًا ولا يعني شيئًا. الوحدة قرار تصميمي، ويجب اتخاذه قبل أول عد. معظم الالتباس في إحصاءات VPN المنشورة يأتي من تجاوز تلك الخطوة.

الصف ادعاء لا شيء

كل صف يؤكد شيئًا عن العالم، وللتأكيد موضوع. وتسمية الموضوع هي ما يجعل الصف قابلًا للمقارنة بصف آخر.

صف المزوّد يؤكد أن مؤسسة تقدم خدمة. صف نقطة النهاية يؤكد أن عنوانًا ومنفذًا معينين يتحدثان بروتوكولًا. صف الخروج يؤكد أن حركة المرور غادرت من عنوان في وقت ما. صف القياس يؤكد أن مسبارًا من مكان ما رصد نتيجة. أربعة موضوعات وأربعة مخططات، ومجموعة بيانات تخلطها بلا مميّز لا يمكن تجميعها إطلاقًا.

المميّز أرخص جزء في المخطط، وهو الجزء الأكثر إغفالًا.

اختر الوحدة قبل العد

اختر الوحدة التي تجيب عن السؤال الذي لديك فعلًا. عدّ نقاط النهاية يجيب عن عدد المستمعين المعلن عنهم؛ وعدّ المزوّدين يجيب عن عدد المؤسسات المشاركة؛ وعدّ عناوين الخروج يجيب عن عدد الأصول الظاهرة.

تلك الأعداد غير قابلة للتبادل، والفروق كبيرة. يمكن لمزوّد واحد أن يشغّل آلاف العناوين، ويمكن لعنوان واحد أن يستضيف عدة مستمعين بروتوكولات لخدمات مختلفة. لذا فإن عدّ العناوين ليس حدًا أعلى ولا حدًا أدنى لعدّ المزوّدين. اذكر الوحدة في الجملة نفسها مع العدد، في كل مرة. والعدد بلا وحدة رأي بعلامة عشرية.

UnitThe row assertsWhat a count of it means
ProviderAn organisation offers a serviceHow many operators appear
EndpointAn address and port speak a protocolHow many listeners were advertised
Exit addressTraffic left from an addressHow many apparent origins exist
ObservationA probe saw a resultHow 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 على الإنترنت.

مقالات ذات صلة