Norvell's Public Machinations

    jgeoip

    0.3.3 • Public • Published

    jGeoIP

    NPM version Travis CI Test coverage Dependencies status Dev Dependencies status License

    NPM install

    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.

    Usage

    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');
    

    API

    • .getMetadata() returns MaxMind's database metadata,
    • .getRecord(IP) returns IP data.

    Output

    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': '美国' } } }
    

    License

    MIT.

    Install

    npm i jgeoip

    DownloadsWeekly Downloads

    206

    Version

    0.3.3

    License

    MIT

    Unpacked Size

    50.6 kB

    Total Files

    12

    Last publish

    Collaborators

    • jclo