IP Geolocation Complete — MMDB

On this page

Our most detailed IP geolocation, with ranges for hyper-local, in-city location on wired networks, as a binary database you query by IP address with any standard MMDB reader. The same ZIP has BGP and registry databases, lookup files and proxy, Tor and VPN lists, so one download gives you location, origin ASN, registrant and proxy checks for any IPv4 or IPv6 address.

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

At a glance

A lookup returns
  • bigdatacloud-complete.mmdb: LocationId, ConfidenceAreaId, IsCellular, HostingLikelihood, ConfidenceScore and DeploymentExtentKm for the range containing the IP. Locations.csv, ConfidenceAreas.csv and place names in 10 languages (German, English, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian and Chinese), compiled and maintained by BigDataCloud, are in the same ZIP and turn the IDs into coordinates, place names and polygons. Each language falls back to the English name where a translation isn't published.
  • bigdatacloud-complete-bgp.mmdb: Asn, IsReachable, IsBogon, RegistryStatus and Registry for the BGP prefix containing the IP. Asns.csv in the same ZIP adds AS name, statistics and each ASN's most active operational area.
  • bigdatacloud-complete-rir.mmdb: Organisation, Country, Registry and RegistryLastModified for the registry range containing the IP.
  • Proxies.csv, TorServers.csv and Vpns.csv, the known proxy, Tor server and VPN addresses, are in the same ZIP; match them by IP.
What it's for

The most detailed location data inside your internal systems, with network signals and proxy, Tor and VPN lists, and no API call per lookup.

Includes the other packages

Complete covers Compact's keys with its own ranges for hyper-local, in-city location on wired networks, and everything in Network Data with Asns.csv in place of Asns-Basic.csv.

Scale

Over a hundred million IPv4 and IPv6 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-complete.mmdbOne record per Complete range, for IPv4 and IPv6Lookup by IP; record keys LocationId, ConfidenceAreaId
bigdatacloud-complete-bgp.mmdbOne record per BGP prefix, for IPv4 and IPv6Lookup by IP; record key Asn
bigdatacloud-complete-rir.mmdbOne record per RIR registry range, for IPv4 and IPv6Lookup by IP
Locations.csvCoordinates, ISO codes, GeoNames IDs, postcode and time zone per locationLocationId
ConfidenceAreas.csvConfidence area polygon (WKT) per areaConfidenceAreaId
Geonames-{lang}.csv × 10Place names by GeoNames ID, one file per language: de, en, es, fr, it, ja, ko, pt, ru, zhGeonamesId
Asns.csvASN identity, statistics and the ASN's most active operational areaAsn,ConfidenceAreaId
Proxies.csvKnown proxy IPv4 addresses and IPv6 networks. See Proxy, Tor and VPN lists.— (match by IP)
TorServers.csvKnown Tor server IPv4 addresses. See Proxy, Tor and VPN lists.— (match by IP)
Vpns.csvKnown VPN IPv4 addresses and IPv6 networks. See Proxy, Tor and VPN lists.— (match by IP)
README.txtPackage overview and links—
Manifest.csvBuild time, data timestamps, row totals and distributions, then one row per other file in that ZIP, including NOTICE.txt where present, with its byte count—
NOTICE.txtThird-party data attributions—

Keys

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

bigdatacloud-complete.mmdb

Complete
KeyTypeExampleDescription
LocationIdinteger307583Key into Locations.csv in this ZIP. Supplied where collected network information is statistically significant.
ConfidenceAreaIdinteger2399Key into ConfidenceAreas.csv in this ZIP. Supplied where collected network information is statistically significant.
IsCellularbooleanfalsetrue if the network appears to be cellular.
HostingLikelihoodinteger0Likelihood, from 0 to 10, that the IP is in a hosting or datacentre environment rather than a residential or mobile network. Higher values mean a greater likelihood of non-human or automated use. See Understanding the Hazard Report.
ConfidenceScoreinteger3How reliable the location estimate is, from 0 to 5: 0–1 Low, 2–3 Medium, 4–5 High. It reflects how closely our service-area estimate matches real-world observations; High is the most reliable. It says nothing about the size of the confidence area. See Understanding the confidence value.
DeploymentExtentKminteger250Typical spread, in km, of where this network's dynamically assigned addresses are used about 80% of the time. It isn't an error radius; use the confidence area for the full footprint. Supplied only where collected network information is statistically significant.

bigdatacloud-complete-bgp.mmdb

Complete
KeyTypeExampleDescription
Asninteger1221Origin ASN. Key into Asns.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-complete-rir.mmdb

Complete
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.

Proxies.csv / TorServers.csv / Vpns.csv

Complete

One entry per row, no duplicates. The three files have the same single column.

FieldTypeExampleDescription
IpAddressip104.28.163.36An entry on the list: proxy (Proxies.csv), Tor server (TorServers.csv) or VPN (Vpns.csv). IPv4 entries are single addresses. IPv6 entries are /64 networks given by their first address, ending in :: (for example 2a00:fbc:ecd2:15f9::). TorServers.csv is IPv4 only.

Lookup files

Complete

Locations.csv, ConfidenceAreas.csv, Geonames-{lang}.csv, Asns.csv and Manifest.csv are defined in the Lookup files reference: Locations · ConfidenceAreas · Geonames · Asns · Manifest.

How the files join

README.txt gives an overview of the package. No ID key: look up the RIR database and the proxy, Tor and VPN files by IP address.Manifest.csv is release metadata. NOTICE.txt holds third-party data attributions.bigdatacloud-complete.mmdbrecordPKIP lookupFKLocationId?FKConfidenceAreaId?IsCellularHostingLikelihoodConfidenceScoreDeploymentExtentKmLocations.csvPKLocationIdFKSubdivisionGeonamesId?FKCityGeonamesId?FKLocalityGeonamesId?+7 more columnsGeonames-{lang}.csv× 10 languagesPKGeonamesIdNameConfidenceAreas.csvPKConfidenceAreaIdGeometryWktAsns.csvPKAsnFKConfidenceAreaId?operational area+9 more columnsbigdatacloud-complete-bgp.mmdbrecordPKIP lookupFKAsn?present when announcedIsReachableIsBogonRegistryStatusRegistryREADME.txtpackage overviewbigdatacloud-complete-rir.mmdbrecordPKIP lookupOrganisationCountryRegistryRegistryLastModifiedProxies.csvTorServers.csvVpns.csvsame schemaIpAddressManifest.csvrelease metadataDescription+4 more columnsNOTICE.txtthird-party data attributionsLocationIdConfidenceAreaIdGeonamesIdConfidenceAreaIdAsn
README.txt gives an overview of the package. NoID key: look up the RIR database and the proxy, Torand VPN files by IP address. Manifest.csv isrelease metadata. NOTICE.txt holds third-partydata attributions.bigdatacloud-complete.mmdbrecordPKIP lookupFKLocationId?FKConfidenceAreaId?IsCellularHostingLikelihoodConfidenceScoreDeploymentExtentKmLocations.csvPKLocationIdFKSubdivisionGeonamesId?FKCityGeonamesId?FKLocalityGeonamesId?+7 more columnsGeonames-{lang}.csv× 10 languagesPKGeonamesIdNameConfidenceAreas.csvPKConfidenceAreaIdGeometryWktbigdatacloud-complete-bgp.mmdbrecordPKIP lookupFKAsn?present when announcedIsReachableIsBogonRegistryStatusRegistryAsns.csvPKAsnFKConfidenceAreaId?operational area+9 more columnsREADME.txtpackage overviewbigdatacloud-complete-rir.mmdbrecordPKIP lookupOrganisationCountryRegistryRegistryLastModifiedProxies.csvTorServers.csvVpns.csvsame schemaIpAddressManifest.csvrelease metadataDescription+4 more columnsNOTICE.txtthird-party data attributionsLocationIdConfidenceAreaIdGeonamesIdAsn
PK primary keyFK foreign key (? = optional) many zero or one
FromKeyTo (in this ZIP)Notes
bigdatacloud-complete.mmdb recordLocationIdLocations.csv LocationIdSupplied where collected network information is statistically significant.
bigdatacloud-complete.mmdb recordConfidenceAreaIdConfidenceAreas.csv ConfidenceAreaIdSupplied where collected network information is statistically significant.
Locations.csvSubdivisionGeonamesId,CityGeonamesId,LocalityGeonamesIdGeonames-{lang}.csv GeonamesIdEach is present where the location has a subdivision, city or locality.
bigdatacloud-complete-bgp.mmdb recordAsnAsns.csv AsnPresent when the prefix is announced in BGP.
Asns.csvConfidenceAreaIdConfidenceAreas.csv ConfidenceAreaIdWhere this ASN operates most, as a polygon in ConfidenceAreas.csv. It shares that table with confidence areas but describes the whole network, not one IP range. Supplied where collected network information is statistically significant.

Not joined: look up bigdatacloud-complete-rir.mmdb by IP address, match the proxy, Tor and VPN files by IP, Manifest.csv describes the release, and NOTICE.txt holds third-party data attributions.

To profile an IP: look it up in each database, join the geolocation record's LocationId and ConfidenceAreaId to the lookup files, join the BGP record's Asn to Asns.csv, and check the IP against the proxy, Tor and VPN lists.

Sample data

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

bigdatacloud-complete.mmdb

139.130.4.5       {"LocationId": 307583, "ConfidenceAreaId": 2399, "IsCellular": false, "HostingLikelihood": 0, "ConfidenceScore": 3}
139.130.4.190     {"LocationId": 1709507, "ConfidenceAreaId": 48855, "IsCellular": false, "HostingLikelihood": 0, "ConfidenceScore": 4}
1.37.82.10        {"LocationId": 6010, "ConfidenceAreaId": 1128, "IsCellular": true, "HostingLikelihood": 0, "ConfidenceScore": 4, "DeploymentExtentKm": 250}
2001:8000::1      {"LocationId": 27414, "ConfidenceAreaId": 444676, "IsCellular": false, "HostingLikelihood": 0, "ConfidenceScore": 1}
192.168.1.1       no record

bigdatacloud-complete-bgp.mmdb

139.130.4.5       {"Asn": 1221, "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"}

bigdatacloud-complete-rir.mmdb

139.130.4.5       {"Organisation": "Telstra Limited", "Country": "AU", "Registry": "Apnic", "RegistryLastModified": "2024-05-10T00:50:24.0000000Z"}
2001:8000::1      {"Organisation": "Telstra Limited", "Country": "AU", "Registry": "Apnic", "RegistryLastModified": "2024-05-10T00:50:24.0000000Z"}

Each record carries only the keys that hold a value. DeploymentExtentKm is supplied where collected network information is statistically significant, as for 1.37.82.10. Asn is supplied where the prefix is announced in BGP, as for 139.130.4.5, 2001:8000::1 and 205.209.150.1. Joined, 139.130.4.5 resolves to AU, Melbourne, confidence area 2399, AS1221 ASN-TELSTRA (Telstra Limited), and 139.130.4.190 to Ipswich, AU-QLD.

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.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. ConfidenceAreaId is supplied where collected network information is statistically significant.

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 no record from bigdatacloud-complete.mmdb. The BGP database returns a record for them, 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. In every file, 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

Geolocation ranges, BGP prefixes and registry ranges never overlap within their own database, so an address matches at most one record in each.

IDs belong to the package

LocationId and ConfidenceAreaId are specific to Complete and to each release, so join them only to lookup files from the same download. The same number means a different place in Compact. GeoNames IDs are the same in every package.

Proxy, Tor and VPN lists

The lists have no range column or ID. Match IPv4 entries exactly. IPv6 entries in Proxies.csv and Vpns.csv are /64 networks given by their first address (for example 2001:470:2be:1::), with no prefix length written; match an IPv6 address by its first 64 bits. TorServers.csv holds IPv4 addresses only.

File conventions

The lookup files in this ZIP are UTF-8 with CRLF line endings, Manifest.csv included. Asns.csv and the Geonames-*.csv files start with a byte-order mark (BOM), so use a BOM-aware reader. MMDB metadata: database_type is BigDataCloud-Complete, 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-complete-mmdb.zip "https://www.bigdatacloud.com/download?package=complete&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=complete&format=mmdb" \
  | awk 'tolower($1)=="location:" { sub(/\r$/, "", $2); print $2 }')
curl -fo bigdatacloud-complete-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-complete-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, including NOTICE.txt where present, with its byte count, so you can check a complete download and load. To check the ZIP itself, see Check a download.

Code samples

Location, origin ASN, registrant and proxy flag for an IP (Python). Install a reader with pip install maxminddb. Loading Complete's Locations.csv into a dictionary like this uses a lot of memory; for production, load the lookup files into a database or key-value store.

import csv
import maxminddb

def load_csv(path, key):
    # utf-8-sig skips the byte-order mark some files start with
    with open(path, newline="", encoding="utf-8-sig") as f:
        return {row[key]: row for row in csv.DictReader(f)}

# Lookup files and lists from this ZIP
locations = load_csv("Locations.csv", "LocationId")
names = load_csv("Geonames-en.csv", "GeonamesId")
asns = load_csv("Asns.csv", "Asn")
proxies = set(load_csv("Proxies.csv", "IpAddress"))

geo = maxminddb.open_database("bigdatacloud-complete.mmdb")
bgp = maxminddb.open_database("bigdatacloud-complete-bgp.mmdb")
rir = maxminddb.open_database("bigdatacloud-complete-rir.mmdb")

ip = "139.130.4.5"
place = geo.get(ip) or {}        # private and reserved addresses return no record
route = bgp.get(ip) or {}
reg = rir.get(ip) or {}

loc = locations.get(str(place.get("LocationId")), {})
city = names.get(loc.get("CityGeonamesId"), {}).get("Name")
asn = route.get("Asn")           # supplied where the prefix is announced in BGP
print(loc.get("CountryIso"), city, place.get("ConfidenceAreaId"),
      asn, asns.get(str(asn), {}).get("AsnName"), reg.get("Organisation"),
      ip in proxies)
# AU Melbourne 2399 1221 ASN-TELSTRA Telstra Limited False

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