Tcl
Tcl
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 Tcl Downloads
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]
# Note: This is not a real API key. Replace with your own...
CkHttp_SetUrlVar $http "api_key" "2C312FBC9E667E5A0211F5152E5A1333"
CkHttp_SetUrlVar $http "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..
set jsonStr [CkHttp_quickGetStr $http "https://api.ip2location.io/?key={$api_key}&ip={$ip_address}&format=json"]
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",
# "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
# }
set ip [CkJsonObject_stringOf $json "ip"]
set country_code [CkJsonObject_stringOf $json "country_code"]
set country_name [CkJsonObject_stringOf $json "country_name"]
set region_name [CkJsonObject_stringOf $json "region_name"]
set city_name [CkJsonObject_stringOf $json "city_name"]
set latitude [CkJsonObject_stringOf $json "latitude"]
set longitude [CkJsonObject_stringOf $json "longitude"]
set zip_code [CkJsonObject_stringOf $json "zip_code"]
set time_zone [CkJsonObject_stringOf $json "time_zone"]
set asn [CkJsonObject_stringOf $json "asn"]
set v_as [CkJsonObject_stringOf $json "as"]
set is_proxy [CkJsonObject_BoolOf $json "is_proxy"]
delete_CkHttp $http
delete_CkJsonObject $json