Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

40 lines (27 sloc) 1.367 kB

GeoIP Server

This simple Rack server is useful as a self-hosted service for making lookups to the GeoIP database from MaxMind.

Instant installation and deploy

  • Clone this: git clone git://
  • Download the free GeoIP data files: rake geoip:update_city_lite
  • Commit that data file to your clone: git add vendor && git commit -m "adding data file"
  • Signup for an account at Heroku (better details here)
  • Create and name a new app where you want to host this
  • Push it to git push heroku master

How To

Once the server is running you can make a GET request to the server and receive lookup results in JSON format.

require 'json'
require 'open-uri'
# Get the requesting user's IP address
# In a Rails app, you can use: request.remote_ip
# In a Sinatra app, you can use: request.ip
# In a Rack app, you can use: @env['REMOTE_ADDR']
ip = ""
data = JSON.load(open("{ip}").read)
"You're in: #{data['city']}"

Or, straight from a terminal:


Patches welcome, forks celebrated.

Copyright (c) 2010 Jack Danger Canty. Released under the MIT License.

Jump to Line
Something went wrong with that request. Please try again.