C
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
#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 *locationCountry;
const char *locationRegion;
const char *locationCity;
const char *locationLat;
const char *locationLng;
const char *locationPostalCode;
const char *locationTimezone;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttp_Create();
// Lookup an IPv4 address: 8.8.8.8
jsonStr = CkHttp_quickGetStr(http,"https://geo.ipify.org/api/v1?apiKey=API_KEY&ipAddress=8.8.8.8");
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",
// "location": {
// "country": "IT",
// "region": "Lombardy",
// "city": "Milan",
// "lat": 45.4707,
// "lng": 9.1889,
// "postalCode": "20147",
// "timezone": "+02:00"
// }
// }
ip = CkJsonObject_stringOf(json,"ip");
locationCountry = CkJsonObject_stringOf(json,"location.country");
locationRegion = CkJsonObject_stringOf(json,"location.region");
locationCity = CkJsonObject_stringOf(json,"location.city");
locationLat = CkJsonObject_stringOf(json,"location.lat");
locationLng = CkJsonObject_stringOf(json,"location.lng");
locationPostalCode = CkJsonObject_stringOf(json,"location.postalCode");
locationTimezone = CkJsonObject_stringOf(json,"location.timezone");
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
}