Sample code for 30+ languages & platforms
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

SQL Server
-- 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