Sample code for 30+ languages & platforms
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 C++ Downloads

C++
#include <CkHttp.h>
#include <CkJsonObject.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.

    CkHttp http;

    // Lookup an IPv4 address: 8.8.8.8
    const char *jsonStr = http.quickGetStr("https://geo.ipify.org/api/v1?apiKey=API_KEY&ipAddress=8.8.8.8");
    if (http.get_LastMethodSuccess() == false) {
        std::cout << http.lastErrorText() << "\r\n";
        return;
    }

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

    std::cout << json.emit() << "\r\n";

    // 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 char *ip = 0;
    const char *locationCountry = 0;
    const char *locationRegion = 0;
    const char *locationCity = 0;
    const char *locationLat = 0;
    const char *locationLng = 0;
    const char *locationPostalCode = 0;
    const char *locationTimezone = 0;

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