SQL Server
SQL Server
ipinfo.io IPv4 Geolocation Lookup
See more Geolocation Examples
Demonstrates how to lookup Geolocation data for an IPv4 address using the ipinfo.io 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
EXEC sp_OASetProperty @http, 'Login', 'ACCESS_TOKEN'
EXEC sp_OASetProperty @http, 'Password', ''
EXEC sp_OASetProperty @http, 'Accept', 'application/json'
-- Lookup an IPv4 address: 149.250.207.170 (this was a randomly chosen address)
DECLARE @jsonStr nvarchar(4000)
EXEC sp_OAMethod @http, 'QuickGetStr', @jsonStr OUT, 'https://ipinfo.io/149.250.207.170'
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
-- Note: This is the output for the free trial account.
--
-- {
-- "ip": "149.250.207.170",
-- "city": "",
-- "region": "",
-- "country": "DE",
-- "loc": "51.2993,9.4910",
-- "org": "AS15854 EntServ Deutschland GmbH"
-- }
-- A full response would look like this:
-- {
-- "ip": "66.87.125.72",
-- "hostname": "66-87-125-72.pools.spcsdns.net",
-- "city": "Southbridge",
-- "region": "Massachusetts",
-- "country": "US",
-- "loc": "42.0707,-72.0440",
-- "postal": "01550",
-- "asn": {
-- "asn": "AS10507",
-- "name": "Sprint Personal Communications Systems",
-- "domain": "spcsdns.net",
-- "route": "66.87.125.0/24",
-- "type": "isp"
-- },
-- "company": {
-- "name": "Sprint Springfield POP",
-- "domain": "sprint.com",
-- "type": "isp"
-- },
-- "carrier": {
-- "name": "Sprint",
-- "mcc": "310",
-- "mnc": "120"
-- }
-- }
--
DECLARE @ip nvarchar(4000)
DECLARE @hostname nvarchar(4000)
DECLARE @city nvarchar(4000)
DECLARE @region nvarchar(4000)
DECLARE @country nvarchar(4000)
DECLARE @loc nvarchar(4000)
DECLARE @postal nvarchar(4000)
DECLARE @asnAsn nvarchar(4000)
DECLARE @asnName nvarchar(4000)
DECLARE @asnDomain nvarchar(4000)
DECLARE @asnRoute nvarchar(4000)
DECLARE @asnType nvarchar(4000)
DECLARE @companyName nvarchar(4000)
DECLARE @companyDomain nvarchar(4000)
DECLARE @companyType nvarchar(4000)
DECLARE @carrierName nvarchar(4000)
DECLARE @carrierMcc nvarchar(4000)
DECLARE @carrierMnc nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @ip OUT, 'ip'
EXEC sp_OAMethod @json, 'StringOf', @hostname OUT, 'hostname'
EXEC sp_OAMethod @json, 'StringOf', @city OUT, 'city'
EXEC sp_OAMethod @json, 'StringOf', @region OUT, 'region'
EXEC sp_OAMethod @json, 'StringOf', @country OUT, 'country'
EXEC sp_OAMethod @json, 'StringOf', @loc OUT, 'loc'
EXEC sp_OAMethod @json, 'StringOf', @postal OUT, 'postal'
EXEC sp_OAMethod @json, 'StringOf', @asnAsn OUT, 'asn.asn'
EXEC sp_OAMethod @json, 'StringOf', @asnName OUT, 'asn.name'
EXEC sp_OAMethod @json, 'StringOf', @asnDomain OUT, 'asn.domain'
EXEC sp_OAMethod @json, 'StringOf', @asnRoute OUT, 'asn.route'
EXEC sp_OAMethod @json, 'StringOf', @asnType OUT, 'asn.type'
EXEC sp_OAMethod @json, 'StringOf', @companyName OUT, 'company.name'
EXEC sp_OAMethod @json, 'StringOf', @companyDomain OUT, 'company.domain'
EXEC sp_OAMethod @json, 'StringOf', @companyType OUT, 'company.type'
EXEC sp_OAMethod @json, 'StringOf', @carrierName OUT, 'carrier.name'
EXEC sp_OAMethod @json, 'StringOf', @carrierMcc OUT, 'carrier.mcc'
EXEC sp_OAMethod @json, 'StringOf', @carrierMnc OUT, 'carrier.mnc'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
END
GO