数字转IP地址函数

--数字转IP地址函数:
IF OBJECT_ID('dbo.fn_IP2Str')>0
    DROP FUNCTION dbo.fn_IP2Str
GO
CREATE FUNCTION [dbo].[fn_IP2Str] (
    @InIP BIGINT
)
RETURNS NVARCHAR(15)
AS
BEGIN
    IF @InIP IS NULL
       RETURN '0.0.0.0'
    DECLARE @ip BIGINT
    SET @ip = @InIP
    SET @ip = @ip + 0x100000000
    RETURN
       CAST(((@ip & 0xff000000) / 0x1000000) AS NVARCHAR(3)) + '.' +
       CAST(((@ip & 0xff0000) / 0x10000) AS NVARCHAR(3)) + '.' +
       CAST(((@ip & 0xff00) / 0x100) AS NVARCHAR(3)) + '.' +
       CAST((@ip & 0xff) AS NVARCHAR(3))
END
GO
 
--调用示例:
SELECT dbo.fn_IP2Str(4294967295)


-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
IF OBJECT_ID('dbo.f_Int2IP')>0
    DROP FUNCTION dbo.f_Int2IP
CREATE FUNCTION f_Int2IP
(
    @IP BIGINT
)
RETURNS VARCHAR(15)
AS
BEGIN
    DECLARE @re VARCHAR(16)  
    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  
GO
--调用示例:
select dbo.f_Int2IP(333444343)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值