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, MCC, MNC, mobile brand name, elevation and usage type 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 (3.00 MB) Version: 6.0.3

 

Installation

Unix/Linux

  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. autoreconf -i -v --force
  4. ./configure
  5. make
  6. To test it, go to test folder.
    cd test
  7. And run the sample application
    test-IP2Location

 

Windows

  1. Decompress the archive.
  2. Open command prompt and navigate to Microsoft Visual Studio Visual C directory and execute vcvarsall.bat or vcvars32.bat. (Alternatively, open Visual Studio Command Prompt located in the start menu under Microsoft Visual Studio\Visual Studio Tools)
  3. Navigate to working directory.
    cd ip2location-c-x.x.x
  4. nmake Makefile.win
  5. To test it, go to test folder.
    cd test
  6. And run the sample application
    test-IP2Location

 

MacOS

  1. Decompress the archive.
  2. Navigate to working directory.
    cd ip2location-c-x.x.x
  3. autoreconf -i -v --force
  4. export CFLAGS=-I/usr/include/malloc
  5. ./configure
  6. make
  7. To test it, go to test folder.
    cd test
  8. 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.