• Nice article. I've used other commercial geo-location products in the past and it is nice to have a free solution that is able to get reasonable results for BI tasks without spending an arm and a leg. 🙂

    One comment about the ConvertIP2Num function, it seems overly complicated to me. Perhaps something a little more simple might help readability and possibly enhance performance? Here is a relatively concise way to do the conversion:DECLARE @IPAddress VARCHAR(15)

    SET @IPAddress = '196.169.25.3'

    --Convert to number

    SELECT

    CAST(PARSENAME(@IPAddress, 4) AS BIGINT) * POWER(256, 3)

    + CAST(PARSENAME(@IPAddress, 3) AS BIGINT) * POWER(256, 2)

    + CAST(PARSENAME(@IPAddress, 2) AS BIGINT) * POWER(256, 1)

    + CAST(PARSENAME(@IPAddress, 1) AS BIGINT) * POWER(256, 0)