Network Data — MMDB

On this page

BGP routing and RIR registry data covering the whole IPv4 and IPv6 address space, as two binary databases you query by IP address with any standard MMDB reader: one for BGP routing (origin ASN, reachability, bogon flag, registry status) and one for RIR registry details (organisation, country, registry). Each file answers both IPv4 and IPv6. The ASN list in the same ZIP turns an Asn into an AS name and statistics. No geolocation.

  • Format MMDB
  • Archive bigdatacloud-network-mmdb.zip
  • 5 files
  • IPv4 + IPv6 in each file
  • Updated daily

At a glance

A lookup returns
  • bigdatacloud-network-bgp.mmdb: Asn, IsReachable, IsBogon, RegistryStatus and Registry for the BGP prefix containing the IP.
  • bigdatacloud-network-rir.mmdb: Organisation, Country, Registry and RegistryLastModified for the registry range containing the IP.
  • Asns-Basic.csv is in the same ZIP, so you can turn an Asn into an AS name without any other download.
What it's for

Origin ASN, reachability and registrant for any IP inside your internal systems, with no API call per lookup.

Not in it

Geolocation (see Compact MMDB or Complete MMDB); ASN operational areas and proxy, Tor and VPN lists (see Complete MMDB).

Scale

Millions of BGP prefixes and registry ranges. Manifest.csv has the exact counts for each release.

Licence

Flat Data Standard Licence: internal use by your company and its employees only.

Files in the archive

FileWhat it holdsKey / join column
bigdatacloud-network-bgp.mmdbOne record per BGP prefix, for IPv4 and IPv6Lookup by IP; record key Asn
bigdatacloud-network-rir.mmdbOne record per RIR registry range, for IPv4 and IPv6Lookup by IP
Asns-Basic.csvASN identity and address and prefix statisticsAsn
README.txtPackage overview and links—
Manifest.csvBuild time, data timestamps and row totals, then one row per other file in that ZIP with its byte count—

Keys

Both databases map each prefix or range to its record, so a lookup returns the keys below directly; there are no prefix or range keys.

bigdatacloud-network-bgp.mmdb

Network
KeyTypeExampleDescription
Asninteger1221Origin ASN. Key into Asns-Basic.csv in this ZIP. Present when the prefix is announced in BGP.
IsReachablebooleantruetrue if the prefix is announced in BGP and globally reachable. false if the prefix isn't announced in BGP or is a bogon.
IsBogonbooleanfalsetrue if the prefix is announced in BGP but sits in space that shouldn't be announced (reserved, available or unassigned). Private and reserved space that isn't announced, such as 10.0.0.0/8, is false; its RegistryStatus shows it as reserved.
RegistryStatusstringAssignedRegistry status: Assigned, Available, Reserved, or Undefined where the registry gives none.
RegistrystringApnicRegistry for the prefix: Afrinic, Apnic, Arin, Iana, Lacnic, Ripe, or Undefined where the registry gives none.

bigdatacloud-network-rir.mmdb

Network
KeyTypeExampleDescription
OrganisationstringTelstra LimitedOrganisation that holds the range, from registry data. Very long names are shortened and end in ... A few names contain line breaks.
CountrystringAUCountry for the range as the registry publishes it: usually a two-letter code, sometimes several codes separated by spaces, or free text.
RegistrystringApnicRegistry the record comes from: Afrinic, Apnic, Arin, Jpnic, Krnic, Lacnic, Radb, Ripe or Twnic.
RegistryLastModifiedstring2024-05-10T00:50:24.0000000ZWhen the registry last changed the record: ISO 8601 date and time in UTC, stored as text.

Lookup files

Network

Asns-Basic.csv and Manifest.csv are defined in the Lookup files reference: Asns-Basic · Manifest.

How the files join

README.txt gives an overview of the package. No ID key: look up bigdatacloud-network-rir.mmdb by IP address. Manifest.csvis release metadata.bigdatacloud-network-bgp.mmdbrecordPKIP lookupFKAsn?present when announcedIsReachableIsBogonRegistryStatusRegistryAsns-Basic.csvPKAsn+9 more columnsREADME.txtpackage overviewbigdatacloud-network-rir.mmdbrecordPKIP lookupOrganisationCountryRegistryRegistryLastModifiedManifest.csvrelease metadataDescription+4 more columnsAsn
README.txt gives an overview of the package. NoID key: look up bigdatacloud-network-rir.mmdbby IP address. Manifest.csv is release metadata.bigdatacloud-network-bgp.mmdbrecordPKIP lookupFKAsn?present when announcedIsReachableIsBogonRegistryStatusRegistryAsns-Basic.csvPKAsn+9 more columnsREADME.txtpackage overviewbigdatacloud-network-rir.mmdbrecordPKIP lookupOrganisationCountryRegistryRegistryLastModifiedManifest.csvrelease metadataDescription+4 more columnsAsn
PK primary keyFK foreign key (? = optional) many zero or one
FromKeyTo (in this ZIP)Notes
bigdatacloud-network-bgp.mmdb recordAsnAsns-Basic.csv AsnPresent when the prefix is announced in BGP.

Not joined: look up bigdatacloud-network-rir.mmdb by IP address, and Manifest.csv describes the release.

BGP prefixes and registry ranges are separate views of the same address space: they don't share a key, and their boundaries don't line up. Look the IP up in each database on its own.

Sample data

Sample records from the 1 October 2026 release. Values change with each daily update.

bigdatacloud-network-bgp.mmdb

139.130.4.5       {"Asn": 1221, "IsReachable": true, "IsBogon": false, "RegistryStatus": "Assigned", "Registry": "Apnic"}
1.37.82.10        {"Asn": 132199, "IsReachable": true, "IsBogon": false, "RegistryStatus": "Assigned", "Registry": "Apnic"}
2001:8000::1      {"Asn": 1221, "IsReachable": true, "IsBogon": false, "RegistryStatus": "Assigned", "Registry": "Apnic"}
1.0.8.10          {"IsReachable": false, "IsBogon": false, "RegistryStatus": "Assigned", "Registry": "Apnic"}
205.209.150.1     {"Asn": 23338, "IsReachable": false, "IsBogon": true, "RegistryStatus": "Reserved", "Registry": "Arin"}
192.168.1.1       {"IsReachable": false, "IsBogon": false, "RegistryStatus": "Reserved", "Registry": "Iana"}

bigdatacloud-network-rir.mmdb

139.130.4.5       {"Organisation": "Telstra Limited", "Country": "AU", "Registry": "Apnic", "RegistryLastModified": "2024-05-10T00:50:24.0000000Z"}
1.37.82.10        {"Organisation": "Globe Telecoms", "Country": "PH", "Registry": "Apnic", "RegistryLastModified": "2021-02-17T07:28:15.0000000Z"}
2001:8000::1      {"Organisation": "Telstra Limited", "Country": "AU", "Registry": "Apnic", "RegistryLastModified": "2024-05-10T00:50:24.0000000Z"}
1.0.8.10          {"Organisation": "CHINANET Guangdong province network Data Communi..", "Country": "CN", "Registry": "Apnic", "RegistryLastModified": "2021-06-15T08:05:48.0000000Z"}

Each record carries only the keys that hold a value. Asn is supplied where the prefix is announced in BGP, as for 139.130.4.5, 1.37.82.10, 2001:8000::1 and 205.209.150.1. 205.209.150.1 is a bogon. 192.168.1.1 is private space, so BGP shows it as reserved.

Behaviour and edge cases

Supplied keys

Each record carries the keys that apply to it, and each key description says when it is supplied. Check that a key is present before you use it. Asn is supplied where the prefix is announced in BGP. RIR records carry Organisation, Country, Registry and RegistryLastModified. In Asns-Basic.csv, Organisation is supplied for every ASN (Private Use AS for an ASN with no registration record). AsnName, Registry and RegisteredCountry are supplied where the registry publishes them.

Private and reserved addresses

Addresses such as 10.0.0.0/8, 127.0.0.0/8, 100.64.0.0/10, 169.254.0.0/16, 192.168.0.0/16, ::1 and fc00::/7 return a BGP record with RegistryStatus Reserved, Registry Iana and IsReachable false. The RIR database returns whatever the registries publish for that range.

Unannounced prefixes and bogons

An unannounced prefix returns a BGP record with IsReachable false. Asn is supplied where the prefix is announced in BGP. Its RegistryStatus still tells you whether the space is assigned, available or reserved. A few prefixes have an Asn but IsReachable false: these are bogons, with IsBogon true.

IPv4 and IPv6

Each file answers both. IPv4 lives at ::/96, so ::a.b.c.d and IPv4-mapped ::ffff:a.b.c.d addresses answer from the IPv4 data (::ffff:139.130.4.5 returns the same record as 139.130.4.5).

No overlaps

BGP prefixes don't overlap, and registry ranges don't overlap, so an address matches at most one record in each database.

File conventions

The lookup files in this ZIP are UTF-8 with CRLF line endings, Manifest.csv included. Asns-Basic.csv starts with a byte-order mark (BOM), so use a BOM-aware reader. MMDB metadata: database_type is BigDataCloud-BgpPrefixes and BigDataCloud-RirInetnums, and build_epoch is the same moment as Build Complete in Manifest.csv. Full lists: lookup file conventions and MMDB conventions.

Download

Download from your BigDataCloud account, or automate it with your API key:

curl -fL -o bigdatacloud-network-mmdb.zip "https://www.bigdatacloud.com/download?package=network&format=mmdb&key=YOUR_API_KEY"

Prefer not to put the key in URLs?

Send the key in the x-bdc-key header and download in two steps: read the link from the Location header, then fetch it without your key.

URL=$(curl -s -D - -o /dev/null -H 'x-bdc-key: YOUR_API_KEY' \
  "https://www.bigdatacloud.com/download?package=network&format=mmdb" \
  | awk 'tolower($1)=="location:" { sub(/\r$/, "", $2); print $2 }')
curl -fo bigdatacloud-network-mmdb.zip "${URL:?no download link: check the key and package}"

Don't add -L to this command: curl would send your key on with the download.

This saves bigdatacloud-network-mmdb.zip (files). Scheduling, checksums and parameters: Downloads & automation.

Updates and integrity

  • Updated daily. Download on any schedule that suits you; updates are included in your subscription.
  • Manifest.csv records the build time (Build Complete), the data timestamps and the row totals, then one row per other file in that ZIP with its byte count, so you can check a complete download and load. To check the ZIP itself, see Check a download.

Code samples

Origin ASN, AS name and registrant for an IP (Python). Install a reader with pip install maxminddb.

import csv
import maxminddb

# utf-8-sig skips the byte-order mark the file starts with
with open("Asns-Basic.csv", newline="", encoding="utf-8-sig") as f:
    asns = {row["Asn"]: row for row in csv.DictReader(f)}

with maxminddb.open_database("bigdatacloud-network-bgp.mmdb") as bgp, \
     maxminddb.open_database("bigdatacloud-network-rir.mmdb") as rir:
    for ip in ["139.130.4.5", "2001:8000::1", "1.0.8.10"]:
        route = bgp.get(ip) or {}
        reg = rir.get(ip) or {}
        asn = route.get("Asn")  # supplied where the prefix is announced in BGP
        name = asns.get(str(asn), {}).get("AsnName")
        print(ip, asn, name, route.get("IsReachable"), reg.get("Organisation"), reg.get("Country"))

# 139.130.4.5 1221 ASN-TELSTRA True Telstra Limited AU
# 2001:8000::1 1221 ASN-TELSTRA True Telstra Limited AU
# 1.0.8.10 None None False CHINANET Guangdong province network Data Communi.. CN

MMDB reader libraries are available for most languages, and they all work the same way: open the file, look up the IP, read the keys.

Related