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 समेट्छ भन्ने असमर्थित दाबीभन्दा राम्रो हो।

सम्बन्धित लेखहरू