Ce înseamnă un rând într-un set de date VPN și de ce contează
Furnizor, punct final, adresă de ieșire și accesibilitate sunt patru rânduri diferite. Alegeți unitatea, păstrați proveniența, publicați ce nu acoperă setul de date.
Întrebați ce reprezintă un rând dintr-un set de date VPN, iar răspunsurile se înmulțesc: o companie, un ascultător, o adresă de ieșire publică, un rezultat de accesibilitate. Fiecare este legitim, iar amestecarea lor fără etichete produce un total care sună precis și nu înseamnă nimic. Unitatea este o decizie de proiectare și trebuie luată înainte de prima numărare. Cea mai mare parte a confuziei din statisticile VPN publicate vine din omiterea acestui pas.
Un rând este o afirmație, nu un lucru
Fiecare rând afirmă ceva despre lume, iar afirmația are un subiect. Tocmai numirea subiectului face rândul comparabil cu alt rând.
Un rând de furnizor afirmă că o organizație oferă un serviciu. Un rând de punct final afirmă că o anumită adresă și un anumit port vorbesc un protocol. Un rând de ieșire afirmă că traficul a părăsit o adresă la un moment dat. Un rând de măsurare afirmă că o sondă dintr-un loc anume a observat un rezultat. Patru subiecte, patru scheme, iar un set de date care le amestecă fără un discriminator nu poate fi agregat deloc.
Discriminatorul este partea cea mai ieftină a schemei și cea mai des omisă.
Alegeți unitatea înainte de numărare
Alegeți unitatea care răspunde întrebării pe care o aveți cu adevărat. Numărarea punctelor finale răspunde câți ascultători au fost anunțați; numărarea furnizorilor răspunde câte organizații au fost implicate; numărarea adreselor de ieșire răspunde câte origini aparente există.
Aceste numere nu sunt interschimbabile, iar diferențele sunt mari. Un furnizor poate opera mii de adrese, iar o adresă poate găzdui mai mulți ascultători de protocol pentru servicii diferite. De aceea numărul de adrese nu este nici limită superioară, nici inferioară pentru un număr de furnizori. Menționați unitatea în aceeași propoziție cu numărul, de fiecare dată. Un număr fără unitate este o părere cu virgulă zecimală.
| Unit | The row asserts | What a count of it means |
|---|---|---|
| Provider | An organisation offers a service | How many operators appear |
| Endpoint | An address and port speak a protocol | How many listeners were advertised |
| Exit address | Traffic left from an address | How many apparent origins exist |
| Observation | A probe saw a result | How many tests ran, not how many servers |
Un director public furnizează participanții anunțați în acel serviciu. Nu este un inventar al fiecărei implementări comerciale, organizaționale și private din lume, iar tratarea lui ca atare umflă fiecare statistică derivată.
Proveniența aparține schemei
Un rând fără proveniență nu poate fi reverificat. Înregistrați înregistrarea sursă, momentul colectării cu fusul orar, metoda de observare și un statut al ultimei apariții.
Păstrați atributele anunțate separat de cele observate, pentru că au greutate diferită. Eticheta de țară a unui director este o afirmație anunțată și nu este dovada locației fizice a unui server. O alocare IP identifică un bloc de rețea, nu fiecare chiriaș din el și nu operatorul actual al unei aplicații de deasupra. Două coloane și o notă înving un câmp fuzionat de fiecare dată.
{"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"}
O singură linie JSON face schema concretă și este mai ușor de discutat decât un paragraf de descriere. Observați că marcajul temporal poartă un fus orar, iar metoda este numită, nu subînțeleasă.
Eliminați duplicatele după întrebare
Duplicatele depind de unitate. Aceeași adresă cu doi ascultători de protocol este o pereche de puncte finale și două servicii, iar colapsarea ei în tăcere schimbă numărătoarea.
Eliminați duplicatele la nivelul la care se referă întrebarea și înregistrați câte rânduri brute s-au prăbușit în fiecare rând păstrat. Acel raport este în sine o constatare, pentru că o prăbușire mare înseamnă de obicei că sursa publică înregistrări pe ascultător. Un furnizor cu multe adrese produce modelul opus. Ambele sunt corecte și doar raportul înregistrat permite cititorului să le distingă.
Apoi păstrați rândurile brute. Un tabel fără duplicate este o vizualizare, iar capacitatea de a-l reconstrui din intrarea brută face rezultatul reproductibil.
Publicați declarația de acoperire
Indicați cum au fost selectate sursele, ce regiuni sau rețele acoperă și ce lipsește în mod deliberat.
Punctele finale corporative private și implementările neanunțate nu apar niciodată în liste publice, așa că absența într-un director dovedește doar că directorul nu l-a listat. Verificați termenii sursei și permisiunile de redistribuire înainte de publicare și eliminați câmpurile care nu au fost niciodată necesare. Un studiu de puncte finale rareori cere identități de abonați, acreditări sau istoric de navigare. Publicarea lor ar fi alt proiect cu altă justificare.
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
Acele trei comenzi oferă un număr de rânduri, o împărțire pe unități și o schiță a acoperirii după țara anunțată. Păstrați instantanee datate când populația se schimbă și distingeți învechitul de absența confirmată. Un set de date delimitat cu o populație clară bate o afirmație nesuștinută că ar conține fiecare VPN de pe internet.