jGeoIP is a light Javascript API for reading new MaxMind's DB files (mmdb). jGeoIP stores the complete database in memory to speed up the performances. Besides, it implements a LRU (Least Recently Used) cache for optimizing reading performances for the most recently used IPs.
var jGeoIP = require('jgeoip');
// Load synchronously MaxMind database in memory
var geoip = new jGeoIP('path/to/maxmind.mmdb');
// IPV4
geoip.getRecord('8.8.8.8');
//IPV6
geoip.getRecord('2001:4860:4860::8844');
.getMetadata()
returns MaxMind's database metadata,.getRecord(IP)
returns IP data.
GeoLite2-City.mmdb
outputs:
{ city:
{ geoname_id: 5375480,
names:
{ de: 'Mountain View',
en: 'Mountain View',
fr: 'Mountain View',
ja: 'マウンテンビュー',
ru: 'Маунтин-Вью',
'zh-CN': '芒廷维尤' } },
continent:
{ code: 'NA',
geoname_id: 6255149,
names:
{ de: 'Nordamerika',
en: 'North America',
es: 'Norteamérica',
fr: 'Amérique du Nord',
ja: '北アメリカ',
'pt-BR': 'América do Norte',
ru: 'Северная Америка',
'zh-CN': '北美洲' } },
country:
{ geoname_id: 6252001,
iso_code: 'US',
names:
{ de: 'USA',
en: 'United States',
es: 'Estados Unidos',
fr: 'États-Unis',
ja: 'アメリカ合衆国',
'pt-BR': 'Estados Unidos',
ru: 'Сша',
'zh-CN': '美国' } },
location:
{ latitude: 37.386,
longitude: -122.0838,
metro_code: 807,
time_zone: 'America/Los_Angeles' },
postal: { code: '94040' },
registered_country:
{ geoname_id: 6252001,
iso_code: 'US',
names:
{ de: 'USA',
en: 'United States',
es: 'Estados Unidos',
fr: 'États-Unis',
ja: 'アメリカ合衆国',
'pt-BR': 'Estados Unidos',
ru: 'Сша',
'zh-CN': '美国' } },
subdivisions: [ { geoname_id: 5332921, iso_code: 'CA', names: [Object] } ] }
Some IP addresses do not report city
information. Most IPv6 addresses report country information only.
GeoLite2-Country.mmdb
outputs:
{ continent:
{ code: 'NA',
geoname_id: 6255149,
names:
{ de: 'Nordamerika',
en: 'North America',
es: 'Norteamérica',
fr: 'Amérique du Nord',
ja: '北アメリカ',
'pt-BR': 'América do Norte',
ru: 'Северная Америка',
'zh-CN': '北美洲' } },
country:
{ geoname_id: 6252001,
iso_code: 'US',
names:
{ de: 'USA',
en: 'United States',
es: 'Estados Unidos',
fr: 'États-Unis',
ja: 'アメリカ合衆国',
'pt-BR': 'Estados Unidos',
ru: 'Сша',
'zh-CN': '美国' } },
registered_country:
{ geoname_id: 6252001,
iso_code: 'US',
names:
{ de: 'USA',
en: 'United States',
es: 'Estados Unidos',
fr: 'États-Unis',
ja: 'アメリカ合衆国',
'pt-BR': 'Estados Unidos',
ru: 'Сша',
'zh-CN': '美国' } } }
MIT.