字符型IP和数字IP之间的转换

字符型IP和数字IP之间的转换

 

 

create function [dbo].[ip_to_int](@ip varchar(15))

returns bigint

as begin

 

DECLARE @IP_INT BIGINT;

 

SELECT @IP_INT=CONVERT(BIGINT,CONVERT(BINARY(1),CAST(parsename(@ip,1) AS INT))

    + CONVERT(BINARY(1),CAST(parsename(@ip,2) AS INT))

    + CONVERT(BINARY(1),CAST(parsename(@ip,3) AS INT))

    + CONVERT(BINARY(1),CAST(parsename(@ip,4) AS INT)));

 

RETURN(@IP_INT)

END

/*

SELECT DBO.[ip_to_int]('218.83.152.2')

 

 

--------------------

43537370

 

(1 行受影响)

*/

 

create function [dbo].[int_to_ip](@ip_int bigint)

returns varchar(20)

as

begin

declare @ip  varchar(15);

 

select @ip=ltrim(convert(int,substring(CONVERT(binary(4),@ip_int),4,1)))+'.'+

           ltrim(convert(int,substring(CONVERT(binary(4),@ip_int),3,1)))+'.'+

           ltrim(convert(int,substring(CONVERT(binary(4),@ip_int),2,1)))+'.'+

           ltrim(convert(int,substring(CONVERT(binary(4),@ip_int),1,1)));

 

return(@ip)

end

 

 

/*

SELECT DBO.[int_to_ip](43537370)

 

 

--------------------

218.83.152.2

 

(1 行受影响)

 

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值