Bringing Location to the Internet

C Library

IP2Location C library enables the user to find the country, region, city, coordinates, zip code, time zone, ISP, domain name, connection type, area code, weather and mobile information 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 C Library (1.29 MB) Version: 5.0.0

 

Installation
  1. Decompress the archive.
    tar xvfz ip2location-c-x.x.x.tar.gz
  2. Navigate to working directory.
    cd ip2location-c-x.x.x
  3. Compile the library.
    ./configure
    make
    make check
    make install
  4. Copy the compiled to lib folder.
    cp /usr/local/lib/libIP2Location.so /lib
  5. To test it, go to test folder.
    cd test
  6. And run the sample application
    ./test-IP2Location

 

Sample Codes
#include "IP2Location.h"

IP2Location *IP2LocationObj = IP2Location_open("../data/IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-SAMPLE.BIN");
IP2LocationRecord *record = IP2Location_get_all(IP2LocationObj, "161.11.12.13");
printf("%s %s %s %s %s %f %f %s %s %s %s %s %s %s %s %s %s %s %s %s\n",
   record->country_short,
   record->country_long,
   record->region,
   record->city,
   record->isp,
   record->latitude,
   record->longitude,
   record->domain,
   record->zipcode,
   record->timezone,
   record->netspeed,
   record->iddcode,
   record->areacode,
   record->weatherstationcode,
   record->weatherstationname,
   record->mcc,
   record->mnc,
   record->mobilebrand,
   record->elevation,
   record->usagetype);
IP2Location_free_record(record);
IP2Location_close(IP2LocationObj);
Credit: Thanks to Markus Koetter & C.B. Fong for codes contribution.

 

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.