guyellis / ipapi

Web Server that provides a simple API for IP address information

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ipapi

Web Server that provides a simple API for IP address information

Usage

Prerequisites

  • You need to setup a free account with Maxmind and get a License Key from them.
  • You need to setup these Environment Variables
    • MAXMIND_LICENSE_KEY (required) - Set this to the key you got from Maxmind above
    • IPAPI_PORT (optional) - The server port. Defaults to 3334.

Setup the repo

git clone git@github.com:guyellis/ipapi.git
npm install

Start the Server

npm start

Call the API

/ip/<x.x.x.x>

From a browser or your client code call http://<your-domain>/ip/<x.x.x.x>

For example, if you're running the server locally then opening http://localhost:3334/ip/1.2.3.4 in your browser will return some JSON that looks something like this:

{
  "city": {
    "geoname_id": 2077456,
    "names": {
      "en": ""
    }
  },
  "continent": {
    "code": "OC",
    "geoname_id": 0,
    "names": {
      "en": "Oceania"
    }
  },
  "country": {
    "geoname_id": 0,
    "iso_code": "AU",
    "names": {
      "en": "Australia"
    }
  },
  "location": {
    "latitude": 0,
    "longitude": 0,
    "metro_code": 0,
    "time_zone": "Australia/Sydney"
  },
  "postal": {
    "code": ""
  },
  "registered_country": {
    "geoname_id": 0,
    "iso_code": "AU",
    "names": {
      "en": "Australia"
    }
  },
  "subdivisions": [
    {
      "geoname_id": 0,
      "iso_code": "",
      "names": {
        "en": ""
      }
    }
  ]
}

Tested On

  • Ubuntu 20.04 (Node v14.11.0)

Data

The data for the server comes from the GeoLite2 DB provided by maxmind.com.

Cloud Run

Run the deploy-cloud-run.mjs script to build and deploy to Cloud Run.

About

Web Server that provides a simple API for IP address information

License:MIT License


Languages

Language:TypeScript 78.4%Language:JavaScript 18.0%Language:Dockerfile 3.2%Language:Shell 0.4%