C
C
ip-api.com IPv4 Geolocation Lookup
See more Geolocation Examples
Demonstrates how to lookup Geolocation data for an IPv4 address using the ip-api.com 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 *as;
const char *city;
const char *country;
const char *countryCode;
const char *isp;
const char *lat;
const char *lon;
const char *org;
const char *query;
const char *region;
const char *regionName;
const char *status;
const char *timezone;
const char *zip;
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: 149.250.207.170 (this was a randomly chosen address)
jsonStr = CkHttp_quickGetStr(http,"http://ip-api.com/json/149.250.207.170");
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
// {
// "as": "AS15854 Hewlett Packard GmbH",
// "city": "B�blingen",
// "country": "Germany",
// "countryCode": "DE",
// "isp": "Triaton Frankfurt",
// "lat": 48.6779,
// "lon": 8.97297,
// "org": "EntServ Deutschland GmbH",
// "query": "149.250.207.170",
// "region": "BW",
// "regionName": "Baden-W�rttemberg",
// "status": "success",
// "timezone": "Europe/Berlin",
// "zip": "71034"
// }
as = CkJsonObject_stringOf(json,"as");
city = CkJsonObject_stringOf(json,"city");
country = CkJsonObject_stringOf(json,"country");
countryCode = CkJsonObject_stringOf(json,"countryCode");
isp = CkJsonObject_stringOf(json,"isp");
lat = CkJsonObject_stringOf(json,"lat");
lon = CkJsonObject_stringOf(json,"lon");
org = CkJsonObject_stringOf(json,"org");
query = CkJsonObject_stringOf(json,"query");
region = CkJsonObject_stringOf(json,"region");
regionName = CkJsonObject_stringOf(json,"regionName");
status = CkJsonObject_stringOf(json,"status");
timezone = CkJsonObject_stringOf(json,"timezone");
zip = CkJsonObject_stringOf(json,"zip");
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
}