ALTER FUNCTION DBO.FUN_IP2INT(
@IP CHAR(20)
)RETURNS BIGINT
AS
BEGIN
DECLARE @RE BIGINT
SET @RE=0
SELECT @RE=@RE+LEFT(@IP,CHARINDEX('.',@IP+'.')-1)*[ID]
,@IP=STUFF(@IP,1,CHARINDEX('.',@IP+'.'),'')
FROM(
SELECT [ID]=CAST(16777216 AS BIGINT)
UNION ALL SELECT 65536
UNION ALL SELECT 256
UNION ALL SELECT 1)A
RETURN(@RE)
END
DECLARE @INT_IP INT
SET @INT_IP=DBO.FUN_IP2INT('128.5.6.20')
SELECT top 1 Var_IP from (
select Var_IP,Int_DiffIp from IPTABLE WHERE @INT_IP>= INT_BEGIP AND @INT_IP<=INT_ENDIP
) as t order by Int_DiffIp