SQL Server
SQL Server
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 SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @iTmp0 int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Note: This is not a real API key. Replace with your own...
EXEC sp_OAMethod @http, 'SetUrlVar', @success OUT, 'api_key', '2C312FBC9E667E5A0211F5152E5A1333'
EXEC sp_OAMethod @http, 'SetUrlVar', @success OUT, '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..
DECLARE @jsonStr nvarchar(4000)
EXEC sp_OAMethod @http, 'QuickGetStr', @jsonStr OUT, 'https://api.ip2location.io/?key={$api_key}&ip={$ip_address}&format=json'
EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
RETURN
END
DECLARE @json int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
EXEC sp_OASetProperty @json, 'EmitCompact', 0
EXEC sp_OAMethod @json, 'Load', @success OUT, @jsonStr
EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
PRINT @sTmp0
-- 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
-- }
DECLARE @ip nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @ip OUT, 'ip'
DECLARE @country_code nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @country_code OUT, 'country_code'
DECLARE @country_name nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @country_name OUT, 'country_name'
DECLARE @region_name nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @region_name OUT, 'region_name'
DECLARE @city_name nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @city_name OUT, 'city_name'
DECLARE @latitude nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @latitude OUT, 'latitude'
DECLARE @longitude nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @longitude OUT, 'longitude'
DECLARE @zip_code nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @zip_code OUT, 'zip_code'
DECLARE @time_zone nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @time_zone OUT, 'time_zone'
DECLARE @asn nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @asn OUT, 'asn'
DECLARE @v_as nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @v_as OUT, 'as'
DECLARE @is_proxy int
EXEC sp_OAMethod @json, 'BoolOf', @is_proxy OUT, 'is_proxy'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
END
GO