@fuzzysaj/ip-to-geo-location
TypeScript icon, indicating that this package has built-in type declarations

1.4.1 • Public • Published

@fuzzysaj/ip-to-geo-location

npm (scoped) Build Status dependencies Status code coverage

A program to look up geo-location information from an IP address. The program downloads freely available ip to location and map databases from MaxMind and Natural Earth on a regular schedule so that lookups can be done locally, very quickly. For US locations, the county and county FIPS codes are also returned.

As of December 2020, MaxMind now requires a free license key in order to download via their API. Once you have created a free account, you must create a license key for downloading the GeoLite2 databases. This program uses dotenv to look for a environment variable MAXMIND_LICENSE_KEY. This can be provided in a .env file in the format MAXMIND_LICENSE_KEY=<your key> or else set as an evironment variable.

As of March, 2020, this program indirectly depends on gdal, but gdal only compiles with node version <= 10x. Therefore, any program using this program must also stick to node 10x.

Install

$ npm install @fuzzysaj/ip-to-geo-location

Usage

import { getIpToLocationFn } from '@fuzzysaj/ip-to-geo-location'

(async ()=> {
  const ipToLoc = await getIpToLocationFn();
  const loc = ipToLoc('3.128.0.0');
  // -> { continent: "North America", continent_code: "NA",
  //      country: "United States", country_code: "US", country_geonameid: 6252001,
  //      region: "Ohio", region_code: "OH", region_type: "State",
  //      city: "Columbus", city_geonameid: 4509177,
  //      lat: 39.9653, lon: -83.0235, county: "Franklin", county_code: "39049" }
})();

Geonameid

The city_geonameid and and country_geonameid fields correspond to feature geonameid fields from GeoNames. According to this (http://forum.geonames.org/gforum/posts/list/36274.page)[FAQ], geonameids do not change over time and can therefore be used as primary keys in a database.

Readme

Keywords

none

Package Sidebar

Install

npm i @fuzzysaj/ip-to-geo-location

Weekly Downloads

3

Version

1.4.1

License

GPL-3.0

Unpacked Size

65.6 MB

Total Files

56

Last publish

Collaborators

  • fuzzysaj