Sample code for 30+ languages & platforms
JavaScript

ipstack.com IPv4 Geolocation Lookup

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the ipstack.com REST API.
Note
This example is intended for running within a Chilkat.Js embedded JavaScript engine. All Chilkat JavaScript examples require Chilkat v11.4.0 or greater.
JavaScript
var success = false;

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

var http = new CkHttp();

// Lookup an IPv4 address: 149.250.207.170  (this was a randomly chosen address)
var jsonStr = http.QuickGetStr("http://api.ipstack.com/149.250.207.170?access_key=YOUR_ACCESS_KEY");
if (http.LastMethodSuccess == false) {
    console.log(http.LastErrorText);
    return;
}

var json = new CkJsonObject();
json.EmitCompact = false;
success = json.Load(jsonStr);

console.log(json.Emit());

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

// {
//   "ip": "149.250.207.170",
//   "type": "ipv4",
//   "continent_code": "EU",
//   "continent_name": "Europe",
//   "country_code": "DE",
//   "country_name": "Germany",
//   "region_code": null,
//   "region_name": null,
//   "city": null,
//   "zip": null,
//   "latitude": 51.2993,
//   "longitude": 9.491,
//   "location": {
//     "geoname_id": null,
//     "capital": "Berlin",
//     "languages": [
//       {
//         "code": "de",
//         "name": "German",
//         "native": "Deutsch"
//       }
//     ],
//     "country_flag": "http:\/\/assets.ipstack.com\/flags\/de.svg",
//     "country_flag_emoji": "\ud83c\udde9\ud83c\uddea",
//     "country_flag_emoji_unicode": "U+1F1E9 U+1F1EA",
//     "calling_code": "49",
//     "is_eu": true
//   }
// }

var ip;
var v_type;
var continent_code;
var continent_name;
var country_code;
var country_name;
var region_code;
var region_name;
var city;
var zip;
var latitude;
var longitude;
var locationGeoname_id;
var locationCapital;
var locationCountry_flag;
var locationCountry_flag_emoji;
var locationCountry_flag_emoji_unicode;
var locationCalling_code;
var locationIs_eu;
var i;
var count_i;
var code;
var name;
var native;

ip = json.StringOf("ip");
v_type = json.StringOf("type");
continent_code = json.StringOf("continent_code");
continent_name = json.StringOf("continent_name");
country_code = json.StringOf("country_code");
country_name = json.StringOf("country_name");
region_code = json.StringOf("region_code");
region_name = json.StringOf("region_name");
city = json.StringOf("city");
zip = json.StringOf("zip");
latitude = json.StringOf("latitude");
longitude = json.StringOf("longitude");
locationGeoname_id = json.StringOf("location.geoname_id");
locationCapital = json.StringOf("location.capital");
locationCountry_flag = json.StringOf("location.country_flag");
locationCountry_flag_emoji = json.StringOf("location.country_flag_emoji");
locationCountry_flag_emoji_unicode = json.StringOf("location.country_flag_emoji_unicode");
locationCalling_code = json.StringOf("location.calling_code");
locationIs_eu = json.BoolOf("location.is_eu");
i = 0;
count_i = json.SizeOfArray("location.languages");
while (i < count_i) {
    json.I = i;
    code = json.StringOf("location.languages[i].code");
    name = json.StringOf("location.languages[i].name");
    native = json.StringOf("location.languages[i].native");
    i = i+1;
}