Jautājiet, ko attēlo viena VPN datu kopas rinda, un atbildes vairojas: uzņēmums, klausītājs, publiska izejas adrese, sasniedzamības rezultāts. Katra ir likumīga, un to sajaukšana bez etiķetēm rada summu, kas izklausās precīza un neko nenozīmē. Vienība ir dizaina lēmums, un tas jāpieņem pirms pirmās skaitīšanas. Lielākā daļa apjukumu publicētajā VPN statistikā rodas, izlaižot šo soli.

Rinda ir apgalvojums, nevis lieta

Katra rinda apgalvo kaut ko par pasauli, un apgalvojumam ir subjekts. Tieši subjekta nosaukšana padara rindu salīdzināmu ar citu rindu.

Pakalpojumu sniedzēja rinda apgalvo, ka organizācija piedāvā pakalpojumu. Galapunkta rinda apgalvo, ka noteikta adrese un ports runā protokolā. Izejas rinda apgalvo, ka trafiks kādā brīdī atstāja adresi. Mērījuma rinda apgalvo, ka zonde no kaut kurienes novēroja rezultātu. Četri subjekti, četras shēmas, un kopa, kas tos sajauc bez atšķirēja, vispār nevar tikt apvienota.

Atšķirējs ir lētākā shēmas daļa un visbiežāk izlaistā.

Izvēlieties vienību pirms skaitīšanas

Izvēlieties vienību, kas atbild uz jautājumu, kurš jums patiešām ir. Galapunktu skaitīšana atbild, cik klausītāju tika paziņoti; pakalpojumu sniedzēju skaitīšana atbild, cik organizāciju piedalījās; izejas adrešu skaitīšana atbild, cik šķietamu izcelsmju pastāv.

Šie skaitļi nav savstarpēji aizstājami, un atšķirības ir lielas. Viens pakalpojumu sniedzējs var pārvaldīt tūkstošiem adrešu, un viena adrese var mitināt vairākus protokola klausītājus dažādiem pakalpojumiem. Tāpēc adrešu skaits nav ne augšējā, ne apakšējā robeža pakalpojumu sniedzēju skaitam. Katru reizi norādiet vienību tajā pašā teikumā ar skaitli. Skaitlis bez vienības ir viedoklis ar decimālkomatu.

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

Publisks katalogs sniedz tajā pakalpojumā paziņotos dalībniekus. Tas nav visu pasaules komerciālo, organizatorisko un privāto ieviešanu uzskaite, un tā uztveršana tādu uzpūš katru atvasināto statistiku.

Izcelsme pieder shēmai

Rindu bez izcelsmes nevar atkārtoti pārbaudīt. Ierakstiet avota ierakstu, vākšanas laiku ar tā laika joslu, novērošanas metodi un pēdējās redzēšanas statusu.

Turiet paziņotos atribūtus atsevišķi no novērotajiem, jo tiem ir atšķirīgs svars. Kataloga valsts etiķete ir paziņots apgalvojums, un tā nav servera fiziskās atrašanās vietas pierādījums. IP piešķīrums identificē tīkla bloku, nevis katru īrnieku tajā, un nevis virsū esošās lietotnes pašreizējo operatoru. Divas kolonnas un piezīme katru reizi pārspēj vienu apvienotu lauku.

{"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"}

Viena JSON rinda padara shēmu konkrētu, un par to ir vieglāk diskutēt nekā par apraksta rindkopu. Ievērojiet, ka laikspiedolam ir laika josla un metode ir nosaukta, nevis netieša.

Noņemiet dublikātus atbilstoši jautājumam

Dublikāti ir atkarīgi no vienības. Tā pati adrese ar diviem protokola klausītājiem ir viens galapunktu pāris un divi pakalpojumi, un tās klusā apvienošana maina skaitīšanu.

Noņemiet dublikātus tajā līmenī, par kuru jautā jautājums, un ierakstiet, cik neapstrādātu rindu sabruka katrā saglabātajā rindā. Šī attiecība pati par sevi ir atradums, jo liela sabrukšana parasti nozīmē, ka avots publicē ierakstus pa klausītājiem. Pakalpojumu sniedzējs ar daudzām adresēm rada pretēju modeli. Abi ir pareizi, un tikai ierakstītā attiecība ļauj lasītājam tos atšķirt.

Pēc tam saglabājiet neapstrādātās rindas. Tabula bez dublikātiem ir skats, un iespēja to no jauna uzbūvēt no neapstrādātās ievades padara rezultātu atkārtojamu.

Publicējiet pārklājuma paziņojumu

Norādiet, kā tika atlasīti avoti, kuras reģionus vai tīklus tie aptver un kas apzināti trūkst.

Privātie uzņēmumu galapunkti un nepaziņotās ieviešanas nekad neparādās publiskos sarakstos, tāpēc neesamība katalogā pierāda tikai to, ka katalogs to nav iekļāvis. Pirms publicēšanas pārbaudiet avota noteikumus un tālākizplatīšanas atļaujas, un noņemiet laukus, kas nekad nav bijuši vajadzīgi. Galapunktu pētījumam reti nepieciešamas abonentu identitātes, akreditācijas dati vai pārlūkošanas vēsture. To publicēšana būtu cits projekts ar citu pamatojumu.

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

Šīs trīs komandas dod rindu skaitu, sadalījumu pa vienībām un pārklājuma skici pēc paziņotās valsts. Saglabājiet datētus momentuzņēmumus, kad populācija mainās, un atšķiriet novecojušu no apstiprinātas neesamības. Noteikta kopa ar skaidru populāciju pārspēj nepamatotu apgalvojumu, ka tajā ir ikviens interneta VPN.

Saistītie raksti