Sample code for 30+ languages & platforms
Tcl

geo.ipify.org IPv4 Geolocation Lookup

See more Geolocation Examples

Demonstrates how to lookup Geolocation data for an IPv4 address using the geo.ipify.org REST API.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set http [new_CkHttp]

# Lookup an IPv4 address: 8.8.8.8
set jsonStr [CkHttp_quickGetStr $http "https://geo.ipify.org/api/v1?apiKey=API_KEY&ipAddress=8.8.8.8"]
if {[CkHttp_get_LastMethodSuccess $http] == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    exit
}

set json [new_CkJsonObject]

CkJsonObject_put_EmitCompact $json 0
set success [CkJsonObject_Load $json $jsonStr]

puts [CkJsonObject_emit $json]

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

# {
#   "ip": "8.8.8.8",
#   "location": {
#     "country": "IT",
#     "region": "Lombardy",
#     "city": "Milan",
#     "lat": 45.4707,
#     "lng": 9.1889,
#     "postalCode": "20147",
#     "timezone": "+02:00"
#   }
# }

set ip [CkJsonObject_stringOf $json "ip"]
set locationCountry [CkJsonObject_stringOf $json "location.country"]
set locationRegion [CkJsonObject_stringOf $json "location.region"]
set locationCity [CkJsonObject_stringOf $json "location.city"]
set locationLat [CkJsonObject_stringOf $json "location.lat"]
set locationLng [CkJsonObject_stringOf $json "location.lng"]
set locationPostalCode [CkJsonObject_stringOf $json "location.postalCode"]
set locationTimezone [CkJsonObject_stringOf $json "location.timezone"]

delete_CkHttp $http
delete_CkJsonObject $json