Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) MaxMind IPv4 Geolocation LookupDemonstrates how to lookup Geolocation data for an IPv4 address using the MaxMind GeoIP2 Precision Web Service.
#include <CkHttp.h> #include <CkJsonObject.h> void ChilkatSample(void) { CkString strOut; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkHttp http; http.put_Login("MAXMIND_ACCOUNT_ID"); http.put_Password("MAXMIND_LICENSE_KEY"); http.put_Accept("application/json"); // Lookup an IPv4 address: 149.250.207.170 (this was a randomly chosen address) const char *jsonStr = http.quickGetStr("https://geoip.maxmind.com/geoip/v2.1/country/149.250.207.170"); if (http.get_LastMethodSuccess() == false) { strOut.append(http.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } CkJsonObject json; json.put_EmitCompact(false); bool success = json.Load(jsonStr); strOut.append(json.emit()); strOut.append("\r\n"); // Sample output: // Use this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON // { // "continent": { // "code": "EU", // "geoname_id": 6255148, // "names": { // "ja": "?????", // "pt-BR": "Europa", // "ru": "??????", // "zh-CN": "??", // "de": "Europa", // "en": "Europe", // "es": "Europa", // "fr": "Europe" // } // }, // "country": { // "is_in_european_union": true, // "iso_code": "DE", // "geoname_id": 2921044, // "names": { // "fr": "Allemagne", // "ja": "????????", // "pt-BR": "Alemanha", // "ru": "????????", // "zh-CN": "??", // "de": "Deutschland", // "en": "Germany", // "es": "Alemania" // } // }, // "maxmind": { // "queries_remaining": 49999 // }, // "registered_country": { // "is_in_european_union": true, // "iso_code": "DE", // "geoname_id": 2921044, // "names": { // "es": "Alemania", // "fr": "Allemagne", // "ja": "????????", // "pt-BR": "Alemanha", // "ru": "????????", // "zh-CN": "??", // "de": "Deutschland", // "en": "Germany" // } // }, // "traits": { // "ip_address": "149.250.207.170" // } // } // // const char *continentCode = 0; int continentGeoname_id; const char *continentNamesJa = 0; const char *continentNamesPt_BR = 0; const char *continentNamesRu = 0; const char *continentNamesZh_CN = 0; const char *continentNamesDe = 0; const char *continentNamesEn = 0; const char *continentNamesEs = 0; const char *continentNamesFr = 0; bool countryIs_in_european_union; const char *countryIso_code = 0; int countryGeoname_id; const char *countryNamesFr = 0; const char *countryNamesJa = 0; const char *countryNamesPt_BR = 0; const char *countryNamesRu = 0; const char *countryNamesZh_CN = 0; const char *countryNamesDe = 0; const char *countryNamesEn = 0; const char *countryNamesEs = 0; int maxmindQueries_remaining; bool registered_countryIs_in_european_union; const char *registered_countryIso_code = 0; int registered_countryGeoname_id; const char *registered_countryNamesEs = 0; const char *registered_countryNamesFr = 0; const char *registered_countryNamesJa = 0; const char *registered_countryNamesPt_BR = 0; const char *registered_countryNamesRu = 0; const char *registered_countryNamesZh_CN = 0; const char *registered_countryNamesDe = 0; const char *registered_countryNamesEn = 0; const char *traitsIp_address = 0; continentCode = json.stringOf("continent.code"); continentGeoname_id = json.IntOf("continent.geoname_id"); continentNamesJa = json.stringOf("continent.names.ja"); continentNamesPt_BR = json.stringOf("continent.names.pt-BR"); continentNamesRu = json.stringOf("continent.names.ru"); continentNamesZh_CN = json.stringOf("continent.names.zh-CN"); continentNamesDe = json.stringOf("continent.names.de"); continentNamesEn = json.stringOf("continent.names.en"); continentNamesEs = json.stringOf("continent.names.es"); continentNamesFr = json.stringOf("continent.names.fr"); countryIs_in_european_union = json.BoolOf("country.is_in_european_union"); countryIso_code = json.stringOf("country.iso_code"); countryGeoname_id = json.IntOf("country.geoname_id"); countryNamesFr = json.stringOf("country.names.fr"); countryNamesJa = json.stringOf("country.names.ja"); countryNamesPt_BR = json.stringOf("country.names.pt-BR"); countryNamesRu = json.stringOf("country.names.ru"); countryNamesZh_CN = json.stringOf("country.names.zh-CN"); countryNamesDe = json.stringOf("country.names.de"); countryNamesEn = json.stringOf("country.names.en"); countryNamesEs = json.stringOf("country.names.es"); maxmindQueries_remaining = json.IntOf("maxmind.queries_remaining"); registered_countryIs_in_european_union = json.BoolOf("registered_country.is_in_european_union"); registered_countryIso_code = json.stringOf("registered_country.iso_code"); registered_countryGeoname_id = json.IntOf("registered_country.geoname_id"); registered_countryNamesEs = json.stringOf("registered_country.names.es"); registered_countryNamesFr = json.stringOf("registered_country.names.fr"); registered_countryNamesJa = json.stringOf("registered_country.names.ja"); registered_countryNamesPt_BR = json.stringOf("registered_country.names.pt-BR"); registered_countryNamesRu = json.stringOf("registered_country.names.ru"); registered_countryNamesZh_CN = json.stringOf("registered_country.names.zh-CN"); registered_countryNamesDe = json.stringOf("registered_country.names.de"); registered_countryNamesEn = json.stringOf("registered_country.names.en"); traitsIp_address = json.stringOf("traits.ip_address"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.