PowerBuilder
PowerBuilder
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.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Http
string ls_JsonStr
oleobject loo_Json
string ls_Ip
string ls_V_type
string ls_Continent_code
string ls_Continent_name
string ls_Country_code
string ls_Country_name
string ls_Region_code
string ls_Region_name
string ls_City
string ls_Zip
string ls_Latitude
string ls_Longitude
string ls_LocationGeoname_id
string ls_LocationCapital
string ls_LocationCountry_flag
string ls_LocationCountry_flag_emoji
string ls_LocationCountry_flag_emoji_unicode
string ls_LocationCalling_code
integer li_LocationIs_eu
integer i
integer li_Count_i
string ls_Code
string ls_Name
string ls_Native
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
if li_rc < 0 then
destroy loo_Http
MessageBox("Error","Connecting to COM object failed")
return
end if
// Lookup an IPv4 address: 149.250.207.170 (this was a randomly chosen address)
ls_JsonStr = loo_Http.QuickGetStr("http://api.ipstack.com/149.250.207.170?access_key=YOUR_ACCESS_KEY")
if loo_Http.LastMethodSuccess = 0 then
Write-Debug loo_Http.LastErrorText
destroy loo_Http
return
end if
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
loo_Json.EmitCompact = 0
li_Success = loo_Json.Load(ls_JsonStr)
Write-Debug loo_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
// }
// }
ls_Ip = loo_Json.StringOf("ip")
ls_V_type = loo_Json.StringOf("type")
ls_Continent_code = loo_Json.StringOf("continent_code")
ls_Continent_name = loo_Json.StringOf("continent_name")
ls_Country_code = loo_Json.StringOf("country_code")
ls_Country_name = loo_Json.StringOf("country_name")
ls_Region_code = loo_Json.StringOf("region_code")
ls_Region_name = loo_Json.StringOf("region_name")
ls_City = loo_Json.StringOf("city")
ls_Zip = loo_Json.StringOf("zip")
ls_Latitude = loo_Json.StringOf("latitude")
ls_Longitude = loo_Json.StringOf("longitude")
ls_LocationGeoname_id = loo_Json.StringOf("location.geoname_id")
ls_LocationCapital = loo_Json.StringOf("location.capital")
ls_LocationCountry_flag = loo_Json.StringOf("location.country_flag")
ls_LocationCountry_flag_emoji = loo_Json.StringOf("location.country_flag_emoji")
ls_LocationCountry_flag_emoji_unicode = loo_Json.StringOf("location.country_flag_emoji_unicode")
ls_LocationCalling_code = loo_Json.StringOf("location.calling_code")
li_LocationIs_eu = loo_Json.BoolOf("location.is_eu")
i = 0
li_Count_i = loo_Json.SizeOfArray("location.languages")
do while i < li_Count_i
loo_Json.I = i
ls_Code = loo_Json.StringOf("location.languages[i].code")
ls_Name = loo_Json.StringOf("location.languages[i].name")
ls_Native = loo_Json.StringOf("location.languages[i].native")
i = i + 1
loop
destroy loo_Http
destroy loo_Json