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
long 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