Bringing Location to the Internet

Ruby Library

This is a Ruby library that enables the user to find the country, region, city, coordinates, zip code, time zone, ISP, domain name, connection type, area code and weather that any IP address or hostname originates from. It has been optimized for speed and memory utilization. Developers can use the API to query all IP2Location™ binary databases for applications written in C or supporting static/dynamic library.

Download IP2Location Ruby Library (477.86 kB) Version: 4.0.1

 

Installation
  1. Download IP2Location C library at here.
  2. Decompress C library.
    tar ip2location-c-x.x.x.tar.gz
  3. Download and decompress Ruby library.
    tar ip2location-ruby-x.x.x.tar.gz
  4. Get into working directory.
    cd ip2location-ruby-x.x.x
  5. Generate compilation files.
    ruby extconf.rb --with-libIP2Location-lib=../ip2location-c-x.x.x/libIP2Location --with-includeIP2Location-include=../ip2location-c.x.x.x/libIP2Location
  6. Start compilation.
    make

 

*For MacOS X:
  1. Download IP2Location C library at here.
  2. Decompress C library.
    tar ip2location-c-x.x.x.tar.gz
  3. cd C-IP2Location-<version>/libIP2Location
  4. export CFLAGS=-I/usr/include/malloc
  5. gcc -arch i386 -arch x86_64 -arch ppc -c IP2Location.c iMath/imath.c
  6. gcc -arch i386 -arch x86_64 -arch ppc -dynamiclib -current_version 1.0 -o /usr/local/lib/libIP2Location.dylib IP2Location.o imath.o
  7. Download and decompress Python library.
    tar ip2location-python-x.x.x.tar.gz
  8. cd <path>/ip2location-ruby-<version>
  9. ruby extconf.rb
  10. make

 

Sample Codes
require 'IP2Location'

IP2LocObj = IP2Location.new()
IP2LocObj.open("data/IP-COUNTRY-SAMPLE.BIN")
rec = IP2LocObj.get_all("19.5.10.1")
puts rec.country_short
puts rec.country_long
puts rec.city
puts rec.region
puts rec.isp
puts rec.latitude
puts rec.longitude
puts rec.domain
puts rec.zipcode
puts rec.timezone
puts rec.netspeed
puts rec.iddcode
puts rec.areacode
puts rec.weatherstationcode
puts rec.weatherstationname
puts rec.mcc
puts rec.mnc
puts rec.mobilebrand

 

Sample Database (BIN)

Evaluation version of the database file having limited range of IP address information. You can query all IP addresses from 0.0.0.0 to 99.255.255.255 only.