Giter VIP home page Giter VIP logo

geoip_server's Introduction

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://github.com/JackDanger/geoip_server.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 Heroku.com: 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 = "207.97.227.239"
data = JSON.load(open("http://my-geoip-service-app.herokuapp.com/#{ip}").read)
"You're in: #{data['city']}"

Or, straight from a terminal:

curl http://my-geoip-service-app.herokuapp.com/207.97.227.239

Patches welcome, forks celebrated.

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

geoip_server's People

Contributors

jackdanger avatar sferik avatar

Stargazers

Angus H. avatar Benjamin Fleischer avatar newlix avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.