Sample code for 30+ languages & platforms
Xbase++

ip2location.io GeoLocation API

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the ip2location.io GeoLocation API.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL cJsonStr
LOCAL oJson
LOCAL cIp
LOCAL cCountry_code
LOCAL cCountry_name
LOCAL cRegion_name
LOCAL cCity_name
LOCAL cLatitude
LOCAL cLongitude
LOCAL cZip_code
LOCAL cTime_zone
LOCAL cAsn
LOCAL cV_as
LOCAL nIs_proxy

nSuccess := 0

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

oHttp := CreateObject("Chilkat.Http")

//  Note: This is not a real API key.  Replace with your own...
oHttp:SetUrlVar("api_key", "2C312FBC9E667E5A0211F5152E5A1333")
oHttp:SetUrlVar("ip_address", "8.8.8.8")

//  Note: When first creating an ip2location.io account, make sure to at least subscribe to the free access.
//  Otherwise your API key will not yet work..
cJsonStr := oHttp:QuickGetStr("https://api.ip2location.io/?key={$api_key}&ip={$ip_address}&format=json")
IF (oHttp:LastMethodSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    RETURN
ENDIF

oJson := CreateObject("Chilkat.JsonObject")
oJson:EmitCompact := 0
nSuccess := oJson:Load(cJsonStr)

? oJson:Emit()

//  Sample output:
//  Use this online tool to generate parsing code from sample JSON: 
//  Generate Parsing Code from JSON

//  {
//    "ip": "8.8.8.8",
//    "country_code": "US",
//    "country_name": "United States of America",
//    "region_name": "California",
//    "city_name": "Mountain View",
//    "latitude": 37.405992,
//    "longitude": -122.078515,
//    "zip_code": "94043",
//    "time_zone": "-07:00",
//    "asn": "15169",
//    "as": "Google LLC",
//    "is_proxy": false
//  }

cIp := oJson:StringOf("ip")
cCountry_code := oJson:StringOf("country_code")
cCountry_name := oJson:StringOf("country_name")
cRegion_name := oJson:StringOf("region_name")
cCity_name := oJson:StringOf("city_name")
cLatitude := oJson:StringOf("latitude")
cLongitude := oJson:StringOf("longitude")
cZip_code := oJson:StringOf("zip_code")
cTime_zone := oJson:StringOf("time_zone")
cAsn := oJson:StringOf("asn")
cV_as := oJson:StringOf("as")
nIs_proxy := oJson:BoolOf("is_proxy")

oHttp:destroy()
oJson:destroy()