Sample code for 30+ languages & platforms
Lianja

ipapi.co IPv4 Geolocation Lookup

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the ipapi.co REST API.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loHttp = createobject("CkHttp")

// Lookup an IPv4 address: 149.250.207.170  (this was a randomly chosen address)
lcJsonStr = loHttp.QuickGetStr("https://ipapi.co/149.250.207.170/json")
if (loHttp.LastMethodSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    return
endif

loJson = createobject("CkJsonObject")
loJson.EmitCompact = .F.
llSuccess = loJson.Load(lcJsonStr)

? loJson.Emit()

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

// {
//   "ip": "149.250.207.170",
//   "city": "B�blingen",
//   "region": "Baden-W�rttemberg",
//   "region_code": null,
//   "country": "DE",
//   "country_name": "Germany",
//   "continent_code": "EU",
//   "in_eu": true,
//   "postal": null,
//   "latitude": null,
//   "longitude": null,
//   "timezone": null,
//   "utc_offset": null,
//   "country_calling_code": "+49",
//   "currency": "EUR",
//   "languages": "de",
//   "asn": "AS15854",
//   "org": "EntServ Deutschland GmbH"
// }

lcIp = loJson.StringOf("ip")
lcCity = loJson.StringOf("city")
lcRegion = loJson.StringOf("region")
lcRegion_code = loJson.StringOf("region_code")
lcCountry = loJson.StringOf("country")
lcCountry_name = loJson.StringOf("country_name")
lcContinent_code = loJson.StringOf("continent_code")
llIn_eu = loJson.BoolOf("in_eu")
lcPostal = loJson.StringOf("postal")
lcLatitude = loJson.StringOf("latitude")
lcLongitude = loJson.StringOf("longitude")
lcTimezone = loJson.StringOf("timezone")
lcUtc_offset = loJson.StringOf("utc_offset")
lcCountry_calling_code = loJson.StringOf("country_calling_code")
lcCurrency = loJson.StringOf("currency")
lcLanguages = loJson.StringOf("languages")
lcAsn = loJson.StringOf("asn")
lcOrg = loJson.StringOf("org")


release loHttp
release loJson