Sample code for 30+ languages & platforms
Lua

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 Lua Downloads

Lua
local chilkat = require("chilkat")

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

local http = chilkat.Http.new()

-- Note: This is not a real API key.  Replace with your own...
http:set_url_var("api_key", "2C312FBC9E667E5A0211F5152E5A1333")
http:set_url_var("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..
local jsonStr = http:quick_get_str("https://api.ip2location.io/?key={$api_key}&ip={$ip_address}&format=json")
if not http.last_method_success then
    print(http.last_error_text)
    return
end

local json = chilkat.JsonObject.new()
json.emit_compact = false
local success = json:load(jsonStr)

print(json: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
-- }

local ip = json:string_of("ip")
local country_code = json:string_of("country_code")
local country_name = json:string_of("country_name")
local region_name = json:string_of("region_name")
local city_name = json:string_of("city_name")
local latitude = json:string_of("latitude")
local longitude = json:string_of("longitude")
local zip_code = json:string_of("zip_code")
local time_zone = json:string_of("time_zone")
local asn = json:string_of("asn")
local v_as = json:string_of("as")
local is_proxy = json:bool_of("is_proxy")