CDN and edge space, by network.
Addresses operated by content delivery and edge networks, attributed to the operator, so a request arriving from a cache is not mistaken for one from a proxy.
Schema at a glance.
See documentation →The schema and metadata are in the docs. It is published as CSVGZ and MMDB.
| start_ip | end_ip | provider | confidence | last_seen |
|---|---|---|---|---|
| 2a03:90c0:4c1:2801::4 | 2a03:90c0:4c1:2801::8 | gcore | high | 2026-09-17 |
| 109.61.39.85 | 109.61.39.85 | gcore | high | 2026-09-17 |
| 92.223.63.8 | 92.223.63.11 | gcore | high | 2026-09-17 |
| 2a01:c9c0:c004:100::3 | 2a01:c9c0:c004:100::3 | gcore | high | 2026-09-17 |
| 92.223.118.214 | 92.223.118.222 | gcore | high | 2026-09-17 |
The operators behind the IDs.
provider is an ID that holds from build to build. CDN Provider resolves each one to the network's name and homepage, and whether we track it. Join it on provider.
| id | name | url | active | note |
|---|---|---|---|---|
| cloudflare | Cloudflare | https://www.cloudflare.com/ | t | |
| akamai | Akamai | https://www.akamai.com/ | t | |
| azure | Microsoft Azure CDN | https://azure.microsoft.com/products/cdn | t | Azure Front Door / Azure CDN edge. |
Downloading it from code.
Database API reference →One call gets you the current CDN IP build. Every official client wraps it three ways: straight to disk, a time-limited link you hand to your own runner, or bytes in memory, and checksums() returns the published digests to verify it against.
download()downloadUrl()downloadBytes()metadata()checksums()import osfrom internetdata import InternetDataclient = InternetData(os.environ["INTERNETDATA_API_KEY"])# what is in today's build, without moving the filemeta = client.database.metadata("cdn_ip_v1")client.database.download("cdn_ip_v1", "mmdb", "./cdn_ip_v1.mmdb")sums = client.database.checksums("cdn_ip_v1", "mmdb")print(meta.updated, meta.entries, sums["sha256"])
Where it occurs.
CDN IP holds 21,709,471 IPv4 addresses in the latest build. These are the countries and networks with the most of them; each opens its own page, as does every IP range.
By country
Of the 21,709,471 IP Geolocation places.
- United States12,597,438 · 58.03%
- The Netherlands1,420,407 · 6.54%
- Germany714,060 · 3.29%
- India703,323 · 3.24%
- Japan491,511 · 2.26%
- Brazil451,326 · 2.08%
- United Kingdom441,113 · 2.03%
- France351,391 · 1.62%
- Singapore346,159 · 1.59%
- Australia335,533 · 1.55%
By network
Each /24 counted for the AS announcing most of it.
- AS20940Akamai International B.V.7,868,800 · 36.25%
- AS16625Akamai Technologies, Inc.4,431,360 · 20.41%
- AS16509Amazon.com, Inc.4,151,443 · 19.12%
- AS13335Cloudflare, Inc.1,128,483 · 5.20%
- AS54113Fastly, Inc.315,904 · 1.46%
- AS2906Netflix Streaming Services Inc.280,064 · 1.29%
- AS19551Incapsula Inc237,056 · 1.09%
- AS15169Google LLC187,968 · 0.87%
- AS701Verizon Business134,276 · 0.62%
- AS55836Reliance Jio Infocomm Limited116,936 · 0.54%
Getting your hands on it.
Teams join CDN IP against traffic they already log, inside their own infrastructure, and never send an address anywhere to get an answer.
Allowlisting edge traffic
A request that leaves through a CDN edge carries the edge's address, not its client's: exempt it where a rule would treat it as residential traffic and flag it.
Traffic attribution
Attribute the requests and logs that arrive through an edge to the delivery network that carried them.
An official client for every major language.
All SDKs on GitHub →Twelve official clients for the languages you ship in, each wrapping the database endpoints: list what you're licensed for, poll a build, follow the download redirect and verify what landed. Install commands are in the docs.
Why allowlist CDN traffic?
A request that leaves through a CDN edge carries the edge's address, not its client's. Treated as ordinary traffic, one edge looks like a single, very busy user.
How precise are the ranges?
As precise as the evidence. A provider's published list, or a network that runs nothing but its edges, goes in whole; elsewhere, only the addresses seen serving as edges, down to single IPs.
Are provider IDs stable?
Yes, across builds. The CDN Provider catalog names each one and links its homepage.
How often is it rebuilt?
Daily. The metadata call answers when the current build landed and how many rows it holds, before you fetch it.
Which formats does a build ship in?
Gzipped CSV and MMDB, both cut from the same build. The MMDB opens in any MaxMind DB reader.
How do we get it?
Under a Standard or Redistribution license, quoted per database. Get a quote names CDN IP to us, and Request evaluation puts the full current build in your hands to test first. Download sample gets you rows from it now.
Is there a lookup API?
No. You download CDN IP and query it in your own systems, so nothing is metered and no address leaves them. Each build comes from the database API, or to your webhook or your own storage. One address at a time, its page on this site shows what CDN IP holds for it.
What if a row looks wrong?
Send it to us and we'll tell you what we hold on it, when we last saw it and how. Corrections land in the next build.
Test the real build first.
An evaluation license puts a full current build in your hands, with no sampling, so you can measure it against your own traffic before anyone talks about terms.