PureBasic
PureBasic
ip-api.com IPv4 Geolocation Lookup
See more Geolocation Examples
Demonstrates how to lookup Geolocation data for an IPv4 address using the ip-api.com API.Chilkat PureBasic Downloads
IncludeFile "CkJsonObject.pb"
IncludeFile "CkHttp.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Lookup an IPv4 address: 149.250.207.170 (this was a randomly chosen address)
jsonStr.s = CkHttp::ckQuickGetStr(http,"http://ip-api.com/json/149.250.207.170")
If CkHttp::ckLastMethodSuccess(http) = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
ProcedureReturn
EndIf
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::setCkEmitCompact(json, 0)
success = CkJsonObject::ckLoad(json,jsonStr)
Debug CkJsonObject::ckEmit(json)
; Sample output:
; Use this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
; {
; "as": "AS15854 Hewlett Packard GmbH",
; "city": "B�blingen",
; "country": "Germany",
; "countryCode": "DE",
; "isp": "Triaton Frankfurt",
; "lat": 48.6779,
; "lon": 8.97297,
; "org": "EntServ Deutschland GmbH",
; "query": "149.250.207.170",
; "region": "BW",
; "regionName": "Baden-W�rttemberg",
; "status": "success",
; "timezone": "Europe/Berlin",
; "zip": "71034"
; }
as.s
city.s
country.s
countryCode.s
isp.s
lat.s
lon.s
org.s
query.s
region.s
regionName.s
status.s
timezone.s
zip.s
as = CkJsonObject::ckStringOf(json,"as")
city = CkJsonObject::ckStringOf(json,"city")
country = CkJsonObject::ckStringOf(json,"country")
countryCode = CkJsonObject::ckStringOf(json,"countryCode")
isp = CkJsonObject::ckStringOf(json,"isp")
lat = CkJsonObject::ckStringOf(json,"lat")
lon = CkJsonObject::ckStringOf(json,"lon")
org = CkJsonObject::ckStringOf(json,"org")
query = CkJsonObject::ckStringOf(json,"query")
region = CkJsonObject::ckStringOf(json,"region")
regionName = CkJsonObject::ckStringOf(json,"regionName")
status = CkJsonObject::ckStringOf(json,"status")
timezone = CkJsonObject::ckStringOf(json,"timezone")
zip = CkJsonObject::ckStringOf(json,"zip")
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
ProcedureReturn
EndProcedure