G+

Страна по IP для MSSQL

Программирование Asp.net
Предыдущий Следующий

Что бы узнать страну по IP адресу, можно либо воспользоваться готовыми сервисами. Или хранить у себя базу IP адресов стран.

У себя я пользуюсь двумя способами: сначала проверяю у себя в MSSQL, а потом ломлюсь на посторонний сервер.

Вот sql скрипт, который создаст таблицы с ИП адресами в MSSQL.

Таблиц две:

1) Список стран (CountryIP)

2) Список IP в формате bitint (Net_Country_IP).  (Для преобразования ип адреса в bigint смотрите сюда)

Пример использования:

-- =============================================
-- Description:    Код страны по ИП адресу
-- =============================================
CREATE PROCEDURE [dbo].[Country_GetCodeByIP]
    @IPAddress nvarchar(max)
AS
BEGIN
    SET NOCOUNT ON;

select co.[Code]
FROM [dbo].[Net_Country_IP] as net
inner join [dbo].[CountryIP] as co on co.[CountryIP_ID] = net.[Country_ID]
where net.[Begin_IP] <= dbo.IPToBINT(@IPAddress) and  net.[End_IP] >= dbo.IPToBINT(@IPAddress)

END

 

Комментарий:
  • В 18.04.2012 11:44:59, Аноним

    Если не секрет, какие сервисы для определения страны по ip вы используете?

  • В 18.04.2012 11:51:58,

    Не секрет, использую smart-ip.net

Самостоятельный отпуск Опыт заказа вывоза мусора в Киеве