Pregunte que representa unha fila dun conxunto de datos de VPN e as respostas multiplícanse: unha empresa, un oínte, un enderezo de saída público, un resultado de accesibilidade. Todas son lexítimas, e mesturalas sen etiquetas produce un total que soa preciso e non significa nada. A unidade é unha decisión de deseño, e debe tomarse antes do primeiro reconto. A maior parte da confusión nas estatísticas publicadas de VPN vén de saltar ese paso.

Unha fila é unha afirmación, non unha cousa

Cada fila afirma algo sobre o mundo, e a afirmación ten un suxeito. Nomear o suxeito é o que fai que a fila sexa comparable con outra fila.

Unha fila de provedor afirma que unha organización ofrece un servizo. Unha fila de extremo afirma que un enderezo e un porto concretos falan un protocolo. Unha fila de saída afirma que o tráfico saíu dun enderezo nun momento dado. Unha fila de medición afirma que unha sonda desde algún lugar observou un resultado. Catro suxeitos, catro esquemas, e un conxunto de datos que os mestura sen un discriminador non se pode agregar de ningún xeito.

O discriminador é a parte máis barata do esquema e a que máis a miúdo se omite.

Escolla a unidade antes do reconto

Escolla a unidade que responde á pregunta que realmente ten. Contar extremos responde cantos oíntes se anunciaron; contar provedores responde cantas organizacións participaron; contar enderezos de saída responde cantas orixes aparentes existen.

Eses números non son intercambiables, e as diferenzas son grandes. Un provedor pode operar miles de enderezos, e un enderezo pode aloxar varios oíntes de protocolo para servizos distintos. Por tanto, un reconto de enderezos non é nin un límite superior nin inferior dun reconto de provedores. Indique a unidade na mesma frase que o número, cada vez. Un número sen unidade é unha opinión cun punto decimal.

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

Un directorio público fornece os participantes anunciados nese servizo. Non é un inventario de cada despregamento comercial, organizativo e privado do mundo, e tratalo como tal infla todas as estatísticas derivadas.

A procedencia pertence ao esquema

Unha fila sen procedencia non se pode volver comprobar. Rexistre o rexistro de orixe, o momento de recollida coa súa zona horaria, o método de observación e un estado de última visualización.

Manteña os atributos anunciados separados dos observados, porque teñen un peso distinto. A etiqueta de país dun directorio é unha afirmación anunciada, e non é proba da localización física dun servidor. Unha asignación de IP identifica un bloque de rede, non cada inquilino dentro del, nin o operador actual dunha aplicación por riba. Dúas columnas e unha nota superan un campo fusionado cada vez.

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

Unha soa liña JSON fai concreto o esquema e é máis fácil de discutir que un parágrafo de descrición. Observe que a marca de tempo leva zona horaria e que o método se nomea en lugar de implicarse.

Elimine duplicados segundo a pregunta

Os duplicados dependen da unidade. O mesmo enderezo con dous oíntes de protocolo é un par de extremos e dous servizos, e colapsalo en silencio cambia o reconto.

Elimine duplicados no nivel polo que pregunta a pregunta, e rexistre cantas filas brutas colapsaron en cada fila conservada. Esa proporción é en si mesma un achado, porque un colapso grande adoita significar que a fonte publica rexistros por oínte. Un provedor que opera moitos enderezos produce o patrón oposto. Ambos son correctos, e só a proporción rexistrada permite ao lector distinguilos.

Despois conserve as filas brutas. Unha táboa sen duplicados é unha vista, e a capacidade de reconstruíla desde a entrada bruta é o que fai reproducible o resultado.

Publique a declaración de cobertura

Indique como se seleccionaron as fontes, que rexións ou redes cobren e que falta deliberadamente.

Os extremos corporativos privados e os despregamentos non anunciados nunca aparecen en listas públicas, así que a ausencia nun directorio só proba que o directorio non o listou. Revise os termos da fonte e os permisos de redistribución antes de publicar, e elimine os campos que nunca foron necesarios. Un estudo de extremos raramente require identidades de subscritores, credenciais ou historiais de navegación. Publicalos sería outro proxecto con outra xustificación.

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

Eses tres comandos dan un reconto de filas, un desglose por unidade e un esbozo de cobertura por país anunciado. Conserve instantáneas datadas cando cambia a poboación, e distinga o obsoleto da ausencia confirmada. Un conxunto de datos acoutado cunha poboación clara supera unha afirmación non respaldada de conter cada VPN de Internet.

Artigos relacionados