Zeptejte se, co představuje jeden řádek datové sady o VPN, a odpovědi se množí: firma, posluchač, veřejná výstupní adresa, výsledek dostupnosti. Každá je legitimní, a jejich míchání bez označení dává součet, který zní přesně a neznamená nic. Jednotka je designové rozhodnutí a musí být přijato před prvním počítáním. Většina zmatků ve zveřejněné statistice VPN pochází z přeskočení tohoto kroku.

Řádek je tvrzení, ne věc

Každý řádek tvrdí něco o světě a tvrzení má subjekt. Právě pojmenování subjektu dělá řádek srovnatelným s jiným řádkem.

Řádek poskytovatele tvrdí, že organizace nabízí službu. Řádek koncového bodu tvrdí, že určitá adresa a port mluví protokolem. Řádek výstupu tvrdí, že provoz v určité době opustil adresu. Řádek měření tvrdí, že sonda odněkud pozorovala výsledek. Čtyři subjekty, čtyři schémata a datová sada, která je míchá bez rozlišovače, nelze vůbec agregovat.

Rozlišovač je nejlevnější část schématu a ta nejčastěji vynechávaná.

Zvolte jednotku před počítáním

Zvolte jednotku, která odpovídá na otázku, kterou skutečně máte. Počítání koncových bodů odpovídá, kolik posluchačů bylo inzerováno; počítání poskytovatelů odpovídá, kolik organizací se účastnilo; počítání výstupních adres odpovídá, kolik zdánlivých původů existuje.

Tato čísla nejsou zaměnitelná a rozdíly jsou velké. Jeden poskytovatel může provozovat tisíce adres a jedna adresa může hostit několik protokolových posluchačů pro různé služby. Počet adres tedy není ani horní, ani dolní mezí počtu poskytovatelů. Uvádějte jednotku ve stejné větě jako číslo, pokaždé. Číslo bez jednotky je názor s desetinnou čárkou.

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

Veřejný adresář poskytuje inzerované účastníky v dané službě. Není inventářem každého komerčního, organizačního a soukromého nasazení na světě a jeho takové pojetí nafukuje každou odvozenou statistiku.

Původ patří do schématu

Řádek bez původu nelze znovu ověřit. Zaznamenejte zdrojový záznam, čas sběru s jeho časovým pásmem, metodu pozorování a stav posledního spatření.

Uchovávejte inzerované atributy odděleně od pozorovaných, protože mají jinou váhu. Zeměpisný štítek adresáře je inzerované tvrzení, nikoli důkaz fyzické polohy serveru. Přidělení IP identifikuje síťový blok, ne každého nájemce uvnitř něj a ne současného provozovatele aplikace navrch. Dva sloupce a poznámka pokaždé porazí jedno sloučené pole.

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

Jediný řádek JSON činí schéma konkrétním a lépe se o něm diskutuje než o odstavci popisu. Všimněte si, že časové razítko nese časové pásmo a metoda je pojmenovaná, nikoli implikovaná.

Odstraňujte duplicity podle otázky

Duplicity závisí na jednotce. Stejná adresa se dvěma protokolovými posluchači je jeden pár koncových bodů a dvě služby a její tiché sloučení mění počet.

Odstraňujte duplicity na úrovni, na kterou se otázka ptá, a zaznamenejte, kolik surových řádků se sloučilo do každého zachovaného řádku. Tento poměr je sám nálezem, protože velké sloučení obvykle znamená, že zdroj publikuje záznamy po jednotlivých posluchačích. Poskytovatel s mnoha adresami dává opačný vzorec. Oba jsou správné a pouze zaznamenaný poměr umožňuje čtenáři je rozlišit.

Pak zachovejte surové řádky. Tabulka bez duplicit je pohled a schopnost znovu ji sestavit ze surového vstupu činí výsledek reprodukovatelným.

Zveřejněte prohlášení o pokrytí

Uveďte, jak byly zdroje vybrány, které regiony nebo sítě pokrývají a co záměrně chybí.

Soukromé firemní koncové body a neinzerovaná nasazení se ve veřejných seznamech nikdy neobjevují, takže nepřítomnost v adresáři dokazuje jen to, že jej adresář neuvedl. Před zveřejněním zkontrolujte podmínky zdroje a povolení k redistribuci a odstraňte pole, která nebyla nikdy potřeba. Studie koncových bodů zřídka vyžaduje identity předplatitelů, přihlašovací údaje nebo historii prohlížení. Zveřejnit je by byl jiný projekt s jiným odůvodněním.

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

Tyto tři příkazy dávají počet řádků, rozpad podle jednotek a náčrt pokrytí podle inzerované země. Uchovávejte datované snímky, když se populace mění, a rozlišujte zastaralé od potvrzené nepřítomnosti. Omezená datová sada s jasnou populací je lepší než nepodložené tvrzení, že obsahuje každou VPN na internetu.

Související články