Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Query the MaxMind GeoIP data records via a self-hosted web service

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Gemfile
Octocat-spinner-32 Gemfile.lock
Octocat-spinner-32 README.markdown
Octocat-spinner-32 Rakefile
Octocat-spinner-32 geoip_server.gemspec
Octocat-spinner-32 test.rb

GeoIP Server

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

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


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.

Something went wrong with that request. Please try again.