Sample code for 30+ languages & platforms
Unicode C++

geo.ipify.org IPv4 Geolocation Lookup

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the geo.ipify.org REST API.

Chilkat Unicode C++ Downloads

Unicode C++
#include <CkHttpW.h>
#include <CkJsonObjectW.h>

void ChilkatSample(void)
    {
    bool success = false;

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

    CkHttpW http;

    // Lookup an IPv4 address: 8.8.8.8
    const wchar_t *jsonStr = http.quickGetStr(L"https://geo.ipify.org/api/v1?apiKey=API_KEY&ipAddress=8.8.8.8");
    if (http.get_LastMethodSuccess() == false) {
        wprintf(L"%s\n",http.lastErrorText());
        return;
    }

    CkJsonObjectW json;
    json.put_EmitCompact(false);
    success = json.Load(jsonStr);

    wprintf(L"%s\n",json.emit());

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

    // {
    //   "ip": "8.8.8.8",
    //   "location": {
    //     "country": "IT",
    //     "region": "Lombardy",
    //     "city": "Milan",
    //     "lat": 45.4707,
    //     "lng": 9.1889,
    //     "postalCode": "20147",
    //     "timezone": "+02:00"
    //   }
    // }

    const wchar_t *ip = 0;
    const wchar_t *locationCountry = 0;
    const wchar_t *locationRegion = 0;
    const wchar_t *locationCity = 0;
    const wchar_t *locationLat = 0;
    const wchar_t *locationLng = 0;
    const wchar_t *locationPostalCode = 0;
    const wchar_t *locationTimezone = 0;

    ip = json.stringOf(L"ip");
    locationCountry = json.stringOf(L"location.country");
    locationRegion = json.stringOf(L"location.region");
    locationCity = json.stringOf(L"location.city");
    locationLat = json.stringOf(L"location.lat");
    locationLng = json.stringOf(L"location.lng");
    locationPostalCode = json.stringOf(L"location.postalCode");
    locationTimezone = json.stringOf(L"location.timezone");
    }