0.3.2 • Published 12 years ago

node_geoip_server v0.3.2

Weekly downloads
23
License
-
Repository
github
Last release
12 years ago

Overview

Node js http server that delivers geoip data via a web service. Once running, the server will output a JSON strong with the users city, state, country, etc. like this:

Inputs:

  • The ip address is determined by looking at the following, stopping once one is found
    • ?ip=xxx.xxx.xxx.xxx in the url
    • X-Forwarded-For HTTP header (for proxies). Supports multiple proxies.
    • IP address of the user via REMOTE_ADDR
  • callback=functionName wrap the result in this callback function for jsonp.
  • indent=numSpaces pretty print the output with this number of spaces. Ex. indent=2

Dependencies

Installation

  1. Install node.js - https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
  2. Install npm - http://npmjs.org/ (run the install.sh as root)
  3. Install the C api from maxmind. Recomend you use use a packagemanager of your choice for your OS instead of compile from source, such as sudo apt-get install geoip-database or sudo yum install GeoIP. Known to work with version 1.4.8
  4. Install dependencies for this project: npm install
  5. Download and gunzip the latest http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz. The default location $repo_root/GeoLiteCity.dat , if you put it somewhere else, specify --geodb when starting the service. Run this (from the root of the repo)

Usage

If you are using Forever (recommended): forever start -l forever.log -o out.log -e err.log app.js

If you aren't using Forever node app.js

Options:

Updating the database

Maxmind updates their city database once a month. Grab the latest one and restart the service. Here's a cron that will do it once a month

TODO

  • Unit tests

License

BSD, see LICENSE

0.3.2

12 years ago

0.1.0

12 years ago

0.3.1

12 years ago

0.3.0

12 years ago