Query the latest LACeS anycast census data. Search by IP, prefix, ASN, domain, or TLD.
Enter a RIPE Atlas measurement ID/URL to run anycast detection and geolocation using MiGreedy.
Alternatively, enter an IP address to search for past RIPE Atlas measurements.
Note: RIPE Atlas probe locations are user-reported and may be inaccurate. Mislocated probes can cause false anycast inferences or incorrect geolocation of anycast sites.
The LACeS anycast census relies on two primary measurement platforms to identify and geolocate anycast deployments:
Quick summary:
(AB > 3) || (GCD > 1) when high confidence is needed.(AB > 1) || (GCD > 1) (i.e. all prefixes) when completeness is needed.False positives (AB). The anycast-based approach (AB) can produce false positives — especially when AB reports fewer than 3 sites. This is a known limitation of the underlying methodology; see MAnycast2.
False negatives (GCD). The latency-based approach (GCD) is highly accurate, but may miss prefixes deployed only in small geographic regions (regional anycast).
Partial anycast. Because probing runs at /24 granularity, some prefixes contain a mix of unicast and anycast addresses. Around 1,000 /24s are partially anycast (identified via bi-annual /32 scans). These are flagged with the partial column, but the flag may not reflect short-term changes.
Each row in the dataset represents one /24 (IPv4) or /48 (IPv6) prefix detected as anycast by at least one method. Column meanings:
_.id, city, country code, latitude, longitude, plus per-site geolocation accuracy (candidate_diameter, num_constraints). id is the GeoNames ID of the city the site is placed in, or NoCity when no candidate city lies within the latency discs; censuses before 2026-10-03 placed sites at airports and give an IATA code instead.Both AB and GCD consider anycast confirmed when the number of detected sites is greater than 1. The backing_prefix and ASN columns are sourced from CAIDA's prefix2as.
IPv4. Each protocol has its own hitlist with up to five ranked targets per /24, probed in order until one responds. Every hitlist starts with anycast targets from earlier censuses, addresses that responded to the same protocol in the last 7 daily censuses, and bgp.tools' anycast-prefixes. The ICMP hitlist adds the USC/ISI ANT IPv4 hitlist and OpenINTEL A record addresses; the TCP hitlist adds OpenINTEL A record addresses. The DNS hitlist adds name servers from OpenINTEL infra:ns and the DNS Dependency Graph, open resolvers from ODNS, and public DNS nameservers. All hitlists are rebuilt weekly.
IPv6. The same structure at /48 granularity. ICMP and TCP use AAAA record addresses from OpenINTEL, TUM's IPv6Hitlist (ICMP, TCP/80 and TCP/443 responsive addresses), and TU Dresden & HAW Hamburg's IPv6-SRA hitlist. DNS uses name servers from OpenINTEL infra:ns and the DNS Dependency Graph, public DNS nameservers, and TUM's UDP/53 responsive addresses. To keep probing times manageable, only the first /48 of aliased prefixes is scanned. For a more complete view, join with TUM's aliased-prefix set.
The census runs daily and is updated in this repository automatically.
If you use this dataset in academic work, please cite:
Hendriks, Luckie, Jonker, Sommese, van Rijswijk-Deij. LACeS: An Open, Fast, Responsible and Efficient Longitudinal Anycast Census System. IMC 2025. doi:10.1145/3730567.3764484 · PDF
@inproceedings{10.1145/3730567.3764484,
author = {Hendriks, Remi and Luckie, Matthew and Jonker, Mattijs
and Sommese, Raffaele and van Rijswijk-Deij, Roland},
title = {LACeS: An Open, Fast, Responsible and Efficient
Longitudinal Anycast Census System},
booktitle = {Proceedings of the 2025 ACM Internet Measurement Conference},
year = {2025},
pages = {445--461},
doi = {10.1145/3730567.3764484},
series = {IMC '25}
}
The LACeS census data is available programmatically via a REST API hosted on this server. All endpoints return JSON and require no authentication.
| Endpoint | Description |
|---|---|
GET /api/v1/prefix/{network}/{mask} |
Anycast detection result for a prefix (e.g. 1.1.1.0/24), latest or by date |
GET /api/v1/prefix/{network}/{mask}/history |
Day-by-day anycast presence history for an IPv4 /24 since 2024-03-21 |
GET /api/v1/prefix/{network}/{mask}/nearest |
Detected sites of a prefix ranked by distance to a place or coordinate (?to=Amsterdam, ?lat=&lon=) |
GET /api/v1/places |
Resolve a city name, IATA code, or lat,lon to coordinates — the names /nearest accepts |
GET /api/v1/ip/{ip} |
Look up a bare IP address — automatically mapped to its enclosing /24 (IPv4) or /48 (IPv6) |
GET /api/v1/block/{network}/{mask} |
All anycast prefixes contained within a CIDR block (e.g. 1.0.0.0/8) |
GET /api/v1/asn/{asn}/prefixes |
All anycast prefixes announced by an ASN, optionally filtered by IP version |
GET /api/v1/stats |
Latest global census counts: vantage points and anycast prefix totals per detection method |
GET /api/v1/stats/history |
Full time series of global census statistics from 2024-03-21 to present |
GET /api/v1/dates |
List of all available snapshot dates |
Full documentation with parameter descriptions, response schemas, and interactive examples: Swagger UI · ReDoc
This census depends on the following publicly available datasets and resources:
cities500 dataset of
MiGreedy. Since 2026-10-03 anycast sites are placed
in those with a population of 15,000 or more, and a site's id is the city's GeoNames ID. The
"nearest site to" lookup resolves place names against them. Licensed under
CC BY 4.0.id.