Sample code for 30+ languages & platforms
PowerBuilder

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 PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Http
string ls_JsonStr
oleobject loo_Json
string ls_Ip
string ls_LocationCountry
string ls_LocationRegion
string ls_LocationCity
string ls_LocationLat
string ls_LocationLng
string ls_LocationPostalCode
string ls_LocationTimezone

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: 8.8.8.8
ls_JsonStr = loo_Http.QuickGetStr("https://geo.ipify.org/api/v1?apiKey=API_KEY&ipAddress=8.8.8.8")
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": "8.8.8.8",
//   "location": {
//     "country": "IT",
//     "region": "Lombardy",
//     "city": "Milan",
//     "lat": 45.4707,
//     "lng": 9.1889,
//     "postalCode": "20147",
//     "timezone": "+02:00"
//   }
// }

ls_Ip = loo_Json.StringOf("ip")
ls_LocationCountry = loo_Json.StringOf("location.country")
ls_LocationRegion = loo_Json.StringOf("location.region")
ls_LocationCity = loo_Json.StringOf("location.city")
ls_LocationLat = loo_Json.StringOf("location.lat")
ls_LocationLng = loo_Json.StringOf("location.lng")
ls_LocationPostalCode = loo_Json.StringOf("location.postalCode")
ls_LocationTimezone = loo_Json.StringOf("location.timezone")


destroy loo_Http
destroy loo_Json