Bogon IP ranges, free with an account.
The IPv4 and IPv6 ranges reserved for private networking, loopback, documentation, testing and other special uses, which should never appear as a source or destination on the public internet. Each range is named, and the file is rebuilt daily.
Schema at a glance.
See documentation →The database's schema and metadata are documented carefully. It is published as CSVGZ and MMDB. For each range and the RFC that reserves it, see Bogon IP address ranges.
| start_ip | end_ip | name |
|---|---|---|
| 10.0.0.0 | 10.255.255.255 | Private-Use |
| 100.64.0.0 | 100.127.255.255 | Shared Address Space |
| 192.0.2.0 | 192.0.2.255 | Documentation (TEST-NET-1) |
| 2001:db8:: | 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff | Documentation |
| fc00:: | fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | Unique-Local |
Downloading it from code.
Database API reference →One call gets you the current Bogon 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. A file written to disk lands only once the whole transfer has arrived, 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("bogon_ip_v1")client.database.download("bogon_ip_v1", "mmdb", "./bogon_ip_v1.mmdb")sums = client.database.checksums("bogon_ip_v1", "mmdb")print(meta.updated, meta.entries, sums["sha256"])
Getting your hands on it.
Free with an account, and the file is yours: teams join Bogon IP against the traffic, logs and routing data they already hold, inside their own infrastructure.
Traffic filtering
A packet sourced from a bogon range on the public internet is typically misconfigured or spoofed: drop it or flag it at the edge.
Log hygiene
Tell private and reserved addresses apart from real ones before they reach an allowlist, a report or a model.
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 are licensed for, poll a build, follow the download redirect, verify what landed. Install commands are in the docs.
No loose ends.
Is it really free?
Yes. Create an account and download it with your API key, from the API or any official client.
How often does this database rebuild?
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 for both open databases, and MMDB for Bogon IP as well. The schema section above names this one's.