
Längsschnitt-Anycast-Census-System, das IPv4/IPv6-Präfixe über ICMP, TCP und DNS sondiert, um Anycast-Deployments zu erkennen und PoPs zu geolokalisieren, mit täglichen Datensätzen und einer API.
Kontakt: [email protected]
Die Parquet-Dateien in diesem Repository können über die manycast.net REST API in alternativen Formaten heruntergeladen werden:
| Format | Beispiel |
|---|---|
.parquet | https://manycast.net/api/v1/export/IPv4-latest.parquet |
.parquet.gz | https://manycast.net/api/v1/export/IPv4-latest.parquet.gz |
.csv.gz | https://manycast.net/api/v1/export/IPv4-latest.csv.gz |
.json.gz | https://manycast.net/api/v1/export/IPv4-latest.json.gz |
Ersetzen Sie latest durch ein bestimmtes Datum (z. B. 2026-03-22), um einen historischen Snapshot herunterzuladen. Sowohl IPv4 als auch IPv6 sind mit den Präfixen IPv4- und IPv6- verfügbar.
Beispiel:
curl -O https://manycast.net/api/v1/export/IPv4-2026-03-22.csv.gz
Die vollständige API-Dokumentation beschreibt das Abfragen einzelner Präfixe, ASNs und täglicher Statistiken.
Wir stellen ein interaktives Dashboard zum Abfragen, Visualisieren und Erkunden der Census-Daten bereit:
Suche & Lookup. Geben Sie eine beliebige IP-Adresse, ein Präfix, eine ASN, eine Domain oder eine TLD ein, um den Anycast-Status, die Geolokalisierung erkannter PoPs und zugehörige Netzwerkinformationen nachzuschlagen. Historische Momentaufnahmen sind für alle Census-Daten seit dem 21. März 2024 verfügbar.
Vergleichsmodus. Wählen Sie zwei verschiedene Census-Daten aus, um nachzuvollziehen, wie sich die Anycast-Bereitstellung im Laufe der Zeit verändert hat.
RIPE-Atlas-Integration. Führen Sie den Geolokalisierungsalgorithmus auf öffentlichen RIPE-Atlas-Ergebnissen aus.
Analysen. Statistiken im Zeitverlauf, Anycast nach Region, Hilbert-Kurve des Anycast-Raums, ...
Die Datei census_helper.py bietet praktische Funktionen zum Herunterladen und Filtern des Datensatzes. Erfordert pandas, pyarrow und requests.
import census_helper
# Download latest snapshot and filter to high-confidence anycast prefixes
census = census_helper.download_latest("v4")
anycast = census_helper.filter_anycast(census, "v4")
# Or use comprehensive coverage (includes borderline cases)
anycast = census_helper.filter_anycast(census, "v4", confidence="comprehensive")
python census_helper.py --ip-version v4 --date latest --prefixes-only
python census_helper.py --ip-version v4 --date 2026-03-22 --confidence comprehensive
Je nach Anforderungen empfehlen wir die folgende Filterung:
Hohe Konfidenz:
(AB > 3) || (GCD > 1)
Umfassende Abdeckung:
(AB > 1) || (GCD > 1)
Die Erhebung verwendet zwei Erkennungsmethoden:
Anycast-basiert (AB): Erkennt Anycast mithilfe von Anycast. Ein Präfix gilt als Anycast, wenn mehrere PoPs Antworten empfangen. Siehe MAnycast2 für Details. Es werden drei Probe-Protokolle verwendet: ICMP/ping, TCP SYN/ACK und DNS/UDP.
Latenz-basiert (GCD): Erkennt Anycast mithilfe von Latenzmessungen und Berechnungen der Großkreis-Distanz.
HINWEIS Wir liefern Unicast-Geolokalisierungsergebnisse, wenn AB > 1, aber GCD == 1. Dies kann dabei helfen, festzustellen, ob AB-Ergebnisse FPs oder GCD-Ergebnisse FNs sind.
Neueste Dateien (täglich aktualisiert):
IPv4-latest.parquet
IPv6-latest.parquet
routed-prefixes-IPv4-latest.csv
routed-prefixes-IPv6-latest.csv
stats-latest
Historische Dateien (seit 21. März 2024):
YYYY/MM/DD/IPv4.parquet
YYYY/MM/DD/IPv6.parquet
YYYY/MM/DD/IPv4.csv
YYYY/MM/DD/IPv6.csv
YYYY/MM/DD/stats
| Spalte | Beschreibung |
|---|---|
prefix | Das Kandidaten-Anycast-Präfix: /24 für IPv4 (z. B. 1.0.0.0/24), /48 für IPv6 |
AB_ICMPv4/v6 | Standorte, die mit der anycast-basierten Methode (ICMP) gefunden wurden |
AB_TCPv4/v6 | Standorte, die mit der anycast-basierten Methode (TCP SYNACK) gefunden wurden |
AB_DNSv4/v6 | Standorte, die mit der anycast-basierten Methode (DNS/UDP) gefunden wurden |
GCD_ICMPv4/v6 | Standorte, die mit der latenzbasierten Methode (ICMP) gefunden wurden |
GCD_TCPv4/v6 | Standorte, die mit der latenzbasierten Methode (TCP) gefunden wurden |
partial | Ob partielles Anycast erkannt wurde (nur IPv4) |
backing_prefix | Entsprechendes IP-Routing-Tabellen-Präfix (RouteViews) |
ASN | ASN(s), die das Präfix ankündigen (MOASes getrennt durch ;) |
locations | Ein Eintrag pro geolokalisiertem Standort (siehe unten) |
| Feld | Beschreibung |
|---|---|
id | GeoNames-ID der Stadt oder NoCity, wenn keine Kandidatenstadt innerhalb des RTT-Discs liegt |
city | Stadt, in der der Standort platziert wird, unter Verwendung von iGreedys Algorithmus (die bevölkerungsreichste Kandidatin) |
country_code | Zweistelliger Ländercode (ISO 3166-1 alpha-2) |
lat | Breitengrad der Stadt |
lon | Längengrad der Stadt |
candidate_diameter | Maximale paarweise Entfernung (km) zwischen verbleibenden Kandidatenstädten; kleinere Werte bedeuten höhere Präzision |
num_constraints | Anzahl der überlappenden Discs, die die Kandidatenmenge verfeinert haben; höhere Werte bedeuten höhere Konfidenz im Ergebnis |
Hinweis: Die Geolokalisierung erfolgt mit Flughafen-Granularität für Daten vor dem 2026-10-03 (id enthält davor einen IATA-3-Buchstaben-Flughafencode)
Wir veröffentlichen routed-prefixes-IPv*.csv, das Folgendes enthält:
prefix,asn
4.144.0.0/12,8075
Diese Datei enthält alle IP-Routing-Tabellen-Präfixe, in denen wir Anycast mit hoher Konfidenz erkennen (d. h. die Spalte backing_prefix in der .parquet).
Wir stellen diese Datei bereit, da dies eine einfache Analyse anhand gerouteter Präfixe ermöglicht und über die Web-Oberfläche von GitHub leicht zugänglich ist.
Darüber hinaus vereinfacht sie die gemeinsame Analyse mit der Liste von bgp.tools (die Anycast anhand des gerouteten Präfixes klassifiziert) für diejenigen, die unseren Datensatz in Kombination mit deren verwenden.