IP to Country MMDB format

Details of the IP to Country database MMDB files


IP to Country MMDB


The format used in the IP to Country MMDB database files is compliant with version 2.0 of the specification and is compatible with all free MMDB reader libraries.




Schema


In order to maximize compatibility with existing tools and libraries, we try to stay as close as possible to their expected schema.


continent.code utf8_string
Two-letter continent code [AF, AS, EU, NA, OC, SA, AN]
continent.geoname_id uint32
Unique ID of the continent in the Geonames open database
continent.names map<utf8_string>
Continent name in all available languages
country.geoname_id uint32
Unique ID of the country in the Geonames open database
country.iso_code utf8_string
ISO 3166-1 alpha-2 country code
country.is_in_european_union boolean
Country EU membership status
country.names map<utf8_string>
Country name in all available languages



Sample Data


Below is a sample output from the mmdblookup tool that show all available details for a given IP address :

~$ mmdblookup -f dbip-country.mmdb -i 8.8.8.8
  {
	"continent":
      {
        "code":
          "NA" <utf8_string>
		"geoname_id":
          6255149 <uint32>
		"names":
          {
            "de":
              "Nordamerika" <utf8_string>
            "en":
              "North America" <utf8_string>
            "es":
              "Norteamérica" <utf8_string>
            "fa":
              " امریکای شمالی" <utf8_string>
            "fr":
              "Amérique Du Nord" <utf8_string>
            "ja":
              "北アメリカ大陸" <utf8_string>
            "ko":
              "북아메리카" <utf8_string>
            "pt-BR":
              "América Do Norte" <utf8_string>
            "ru":
              "Северная Америка" <utf8_string>
            "zh-CN":
              "北美洲" <utf8_string>
          }
      }
    "country":
      {
		"geoname_id":
          6252001 <uint32>
		"is_in_european_union":
          false <boolean>
        "iso_code":
          "US" <utf8_string>
        "names":
          {
            "de":
              "Vereinigte Staaten von Amerika" <utf8_string>
            "en":
              "United States" <utf8_string>
            "es":
              "Estados Unidos de América (los)" <utf8_string>
            "fa":
              "ایالات متحدهٔ امریکا" <utf8_string>
            "fr":
              "États-Unis" <utf8_string>
            "ja":
              "アメリカ合衆国" <utf8_string>
            "ko":
              "미국" <utf8_string>
            "pt-BR":
              "Estados Unidos" <utf8_string>
            "ru":
              "США" <utf8_string>
            "zh-CN":
              "美国" <utf8_string>
          }
      }
  }



How To


You may read the IP to Country database and handle the data with your own code, or use it from existing software such as web servers.


Automatic updates

dbip-update is the preferred way for loading and updating databases. The tutorial below will guide you through installation, initial database download and setup of automatic updates :

  Database fetch and update tutorial


Software Libraries

There are several free open-source MMDB reader libraries available for many development platforms :


Nginx

ngx_http_geoip2_module creates variables with values from a MMDB database based on the client IP (default) or from a specific variable (supports both IPv4 and IPv6).

The module now supports nginx streams and can be used in the same way the http module can be used.


Apache

mod_maxminddb allows you to query MMDB files from Apache 2.2+ using the libmaxminddb library.



  Back to IP to Country