Sample code for 30+ languages & platforms
PowerBuilder

ipinfo.io IPv4 Geolocation Lookup

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the ipinfo.io 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_Hostname
string ls_City
string ls_Region
string ls_Country
string ls_Loc
string ls_Postal
string ls_AsnAsn
string ls_AsnName
string ls_AsnDomain
string ls_AsnRoute
string ls_AsnType
string ls_CompanyName
string ls_CompanyDomain
string ls_CompanyType
string ls_CarrierName
string ls_CarrierMcc
string ls_CarrierMnc

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

loo_Http.Login = "ACCESS_TOKEN"
loo_Http.Password = ""
loo_Http.Accept = "application/json"

// Lookup an IPv4 address: 149.250.207.170  (this was a randomly chosen address)
ls_JsonStr = loo_Http.QuickGetStr("https://ipinfo.io/149.250.207.170")
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

// Note: This is the output for the free trial account.
// 
// {
//   "ip": "149.250.207.170",
//   "city": "",
//   "region": "",
//   "country": "DE",
//   "loc": "51.2993,9.4910",
//   "org": "AS15854 EntServ Deutschland GmbH"
// }

// A full response would look like this:

// {
//   "ip": "66.87.125.72",
//   "hostname": "66-87-125-72.pools.spcsdns.net",
//   "city": "Southbridge",
//   "region": "Massachusetts",
//   "country": "US",
//   "loc": "42.0707,-72.0440",
//   "postal": "01550",
//   "asn": {
//     "asn": "AS10507",
//     "name": "Sprint Personal Communications Systems",
//     "domain": "spcsdns.net",
//     "route": "66.87.125.0/24",
//     "type": "isp"
//   },
//   "company": {
//     "name": "Sprint Springfield POP",
//     "domain": "sprint.com",
//     "type": "isp"
//   },  
//   "carrier": {
//     "name": "Sprint",
//     "mcc": "310",
//     "mnc": "120"
//   }
// }
// 

ls_Ip = loo_Json.StringOf("ip")
ls_Hostname = loo_Json.StringOf("hostname")
ls_City = loo_Json.StringOf("city")
ls_Region = loo_Json.StringOf("region")
ls_Country = loo_Json.StringOf("country")
ls_Loc = loo_Json.StringOf("loc")
ls_Postal = loo_Json.StringOf("postal")
ls_AsnAsn = loo_Json.StringOf("asn.asn")
ls_AsnName = loo_Json.StringOf("asn.name")
ls_AsnDomain = loo_Json.StringOf("asn.domain")
ls_AsnRoute = loo_Json.StringOf("asn.route")
ls_AsnType = loo_Json.StringOf("asn.type")
ls_CompanyName = loo_Json.StringOf("company.name")
ls_CompanyDomain = loo_Json.StringOf("company.domain")
ls_CompanyType = loo_Json.StringOf("company.type")
ls_CarrierName = loo_Json.StringOf("carrier.name")
ls_CarrierMcc = loo_Json.StringOf("carrier.mcc")
ls_CarrierMnc = loo_Json.StringOf("carrier.mnc")


destroy loo_Http
destroy loo_Json