Sample code for 30+ languages & platforms
C

ip2location.io GeoLocation API

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the ip2location.io GeoLocation API.

Chilkat C Downloads

C
#include <C_CkHttp.h>
#include <C_CkJsonObject.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttp http;
    const char *jsonStr;
    HCkJsonObject json;
    const char *ip;
    const char *country_code;
    const char *country_name;
    const char *region_name;
    const char *city_name;
    const char *latitude;
    const char *longitude;
    const char *zip_code;
    const char *time_zone;
    const char *asn;
    const char *v_as;
    BOOL is_proxy;

    success = FALSE;

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    http = CkHttp_Create();

    // Note: This is not a real API key.  Replace with your own...
    CkHttp_SetUrlVar(http,"api_key","2C312FBC9E667E5A0211F5152E5A1333");
    CkHttp_SetUrlVar(http,"ip_address","8.8.8.8");

    // Note: When first creating an ip2location.io account, make sure to at least subscribe to the free access.
    // Otherwise your API key will not yet work..
    jsonStr = CkHttp_quickGetStr(http,"https://api.ip2location.io/?key={$api_key}&ip={$ip_address}&format=json");
    if (CkHttp_getLastMethodSuccess(http) == FALSE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkHttp_Dispose(http);
        return;
    }

    json = CkJsonObject_Create();
    CkJsonObject_putEmitCompact(json,FALSE);
    success = CkJsonObject_Load(json,jsonStr);

    printf("%s\n",CkJsonObject_emit(json));

    // Sample output:
    // Use this online tool to generate parsing code from sample JSON: 
    // Generate Parsing Code from JSON

    // {
    //   "ip": "8.8.8.8",
    //   "country_code": "US",
    //   "country_name": "United States of America",
    //   "region_name": "California",
    //   "city_name": "Mountain View",
    //   "latitude": 37.405992,
    //   "longitude": -122.078515,
    //   "zip_code": "94043",
    //   "time_zone": "-07:00",
    //   "asn": "15169",
    //   "as": "Google LLC",
    //   "is_proxy": false
    // }

    ip = CkJsonObject_stringOf(json,"ip");
    country_code = CkJsonObject_stringOf(json,"country_code");
    country_name = CkJsonObject_stringOf(json,"country_name");
    region_name = CkJsonObject_stringOf(json,"region_name");
    city_name = CkJsonObject_stringOf(json,"city_name");
    latitude = CkJsonObject_stringOf(json,"latitude");
    longitude = CkJsonObject_stringOf(json,"longitude");
    zip_code = CkJsonObject_stringOf(json,"zip_code");
    time_zone = CkJsonObject_stringOf(json,"time_zone");
    asn = CkJsonObject_stringOf(json,"asn");
    v_as = CkJsonObject_stringOf(json,"as");
    is_proxy = CkJsonObject_BoolOf(json,"is_proxy");


    CkHttp_Dispose(http);
    CkJsonObject_Dispose(json);

    }