IP to ISP MMDB format

Details of the IP to ISP database MMDB files


IP to ISP MMDB


The format used in the IP to ISP 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
traits.autonomous_system_number uint32
Autonomous System number
traits.autonomous_system_organization utf8_string
AS Organization name
traits.connection_type utf8_string
Type of network connection [Dialup,Cable/DSL,Cellular,Corporate]
traits.isp utf8_string
Internet Service Provider name
traits.organization utf8_string
Organization name



Sample Data


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

~$ mmdblookup -f dbip-isp.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>
          }
      }
    "traits":
      {
        "autonomous_system_number":
          15169 
        "autonomous_system_organization":
          "Google LLC" 
        "connection_type":
          "Corporate" 
        "isp":
          "Level 3 Communications" 
        "organization":
          "Google Inc." 
      }
  }



How To


You may read the IP to ISP 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 ISP