Spør kva éi rad i eit VPN-datasett representerer, og svara multipliserer seg: eit selskap, ein lyttar, ei open utgangsadresse, eit resultat for tilgjenge. Kvar er legitim, og å blande dei utan etikettar gir ein sum som høyrest presis ut og ikkje tyder noko. Eininga er eit designval, og det må takast før den første teljinga. Mesteparten av forvirringa i publisert VPN-statistikk kjem av å hoppe over dette steget.

Ei rad er ein påstand, ikkje ein ting

Kvar rad påstår noko om verda, og påstanden har eit subjekt. Det er namngjevinga av subjektet som gjer rada samanliknbar med ei anna rad.

Ei leverandørrad påstår at ein organisasjon tilbyr ei teneste. Ei endepunktrad påstår at ei bestemt adresse og ein port talar ein protokoll. Ei utgangsrad påstår at trafikk forlét ei adresse på eit tidspunkt. Ei målerad påstår at ein sonde frå ein stad observerte eit resultat. Fire subjekt, fire skjema, og eit datasett som blandar dei utan ein diskriminator kan ikkje aggregerast i det heile.

Diskriminatoren er den billegaste delen av skjemaet og den som oftast blir utelaten.

Vel eininga før teljinga

Vel eininga som svarar på spørsmålet du faktisk har. Å telje endepunkt svarar på kor mange lyttarar som vart annonserte; å telje leverandørar svarar på kor mange organisasjonar som var involverte; å telje utgangsadresser svarar på kor mange tilsynelatande opphav som finst.

Desse tala er ikkje utbyttbare, og skilnadene er store. Éin leverandør kan drive tusentals adresser, og éi adresse kan huse fleire protokoll-lyttarar for ulike tenester. Eit tal på adresser er derfor korkje ei øvre eller nedre grense for eit tal på leverandørar. Oppgi eininga i same setninga som talet, kvar gong. Eit tal utan eining er ei meining med desimalteikn.

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

Ein open katalog leverer annonserte deltakarar i den tenesta. Han er ikkje ein forteikning over kvar kommersiell, organisatorisk og privat utplassering i verda, og å handsame han slik blæs opp kvar avleidd statistikk.

Opphavet høyrer heime i skjemaet

Ei rad utan opphav kan ikkje etterprøvast. Registrer kjeldeposten, innsamlingstida med tidssona, observasjonsmetoden og status for sist sett.

Hald annonserte attributtar skilde frå observerte, fordi dei ber ulik vekt. Landetiketten til ein katalog er ein annonsert påstand, og han er ikkje prov for den fysiske plasseringa til ein tenar. Ei IP-tildeling identifiserer ein nettverksblokk, ikkje kvar leigetakar inni han, og ikkje den noverande operatøren av ein applikasjon oppå. To kolonnar og eit notat slår kvar gong eitt samanslege felt.

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

Éi einaste JSON-linje gjer skjemaet konkret og er lettare å diskutere enn eit avsnitt med skildring. Legg merke til at tidsstempelet ber ei tidssone, og at metoden blir namngjeven i staden for å bli underforstått.

Fjern duplikat etter spørsmålet

Duplikat avheng av eininga. Same adresse med to protokoll-lyttarar er eitt endepunktpar og to tenester, og å slå henne saman i det stille endrar teljinga.

Fjern duplikat på nivået spørsmålet handlar om, og registrer kor mange rå rader som fall saman i kvar behaldne rad. Det tilhøvet er i seg sjølv eit funn, fordi stor samanfalling vanlegvis tyder at kjelda publiserer postar per lyttar. Ein leverandør med mange adresser gir det motsette mønsteret. Båe er riktige, og berre det registrerte tilhøvet lèt lesaren skilje dei.

Hald så på dei rå radene. Ein tabell utan duplikat er ein visning, og evna til å byggje han opp att frå rådataa er det som gjer resultatet reproduserbart.

Publiser dekningsfråsegna

Oppgi korleis kjeldene vart valde, kva regionar eller nettverk dei dekkjer, og kva som med vilje manglar.

Private bedriftsendepunkt og ikkje-annonserte utplasseringar viser seg aldri på opne lister, så fråvær i ein katalog beviser berre at katalogen ikkje lista dei. Sjekk vilkåra til kjelda og rettane til videredistribusjon før publisering, og fjern felt som aldri var nødvendige. Ein endepunktstudie krev sjeldan abonnentidentitetar, innloggingsdetaljar eller nettlesarhistorikk. Å publisere dei ville vere eit anna prosjekt med ei anna grunngiving.

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

Desse tre kommandoane gir eit radtal, ei einingfordeling og ein skisse av dekninga etter annonsert land. Hald på daterte augeblinksbilete når populasjonen endrar seg, og skil utdatert frå stadfesta fråvær. Eit avgrensa datasett med ein klår populasjon slår ein udokumentert påstand om å innehalde kvar VPN på internett.

Relaterte artiklar