34,576
社区成员
发帖
与我相关
我的任务
分享
CREATE FUNCTION dbo.f_Int2IP(
@IP bigint
)RETURNS varchar(15)
AS
BEGIN
DECLARE @re varchar(15)
SET @re=''
SELECT @re=@re+'.'+CAST(@IP/ID as varchar)
,@IP=@IP%ID
from(
SELECT ID=CAST(16777216 as bigint)
UNION ALL SELECT 65536
UNION ALL SELECT 256
UNION ALL SELECT 1)a
RETURN(STUFF(@re,1,1,''))
END
最后一位ip段不同的话,下面的可以过滤掉212.16.161.15,前面ip段也不同的话一个个拆分比较去
SELECT TOP 1000 [id],[ip]
FROM [test_db].[dbo].[ipaddress]
WHERE ip>='212.16.161.100' and ip<='212.16.161.155'
and PARSENAME(ip,1)>=100 and PARSENAME(ip,1)<=155