Използвах следната функция за същото нещо. Опитайте и би трябвало да работи и за вас.
Той проверява дали IP адресът на потребителя е между диапазона от IP адреси или не. Скриптът по-долу ще върне 1, ако IP адресът е между диапазона, в противен случай ще върне 0;
CREATE FUNCTION IsIPAddressInRange
(
@IPAddress varchar(20),
@StartRange varchar(20),
@EndRange varchar(20)
)
RETURNS INT
AS
BEGIN
DECLARE @MAXRANGE BIGINT = 256
RETURN
CASE
WHEN PARSENAME(@IPAddress,1) + @MAXRANGE * PARSENAME(@IPAddress,2) +
@MAXRANGE * @MAXRANGE * PARSENAME(@IPAddress ,3) + @MAXRANGE * @MAXRANGE * @MAXRANGE * PARSENAME(@IPAddress ,4)
BETWEEN
PARSENAME(@StartRange,1) + @MAXRANGE * PARSENAME(@StartRange,2) +
@MAXRANGE * @MAXRANGE * PARSENAME(@StartRange ,3) + @MAXRANGE * @MAXRANGE * @MAXRANGE * PARSENAME(@StartRange ,4)
AND
PARSENAME(@EndRange,1) + @MAXRANGE * PARSENAME(@EndRange,2) +
@MAXRANGE * @MAXRANGE * PARSENAME(@EndRange ,3) + @MAXRANGE * @MAXRANGE * @MAXRANGE * PARSENAME(@EndRange ,4)
THEN 1
ELSE 0
END
END
Взех горната функция от ТУК .