[转]字符型IP地址转换成数字IP的SQL函数

时间:2024-01-02 12:37:44

使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助。      /**//*--调用示例  
    select   dbo.f_IP2Int('192.168.0.11')   select   dbo.f_IP2Int('12.168.0.1')   --*/   CREATE   FUNCTION   [dbo].[f_IP2Int](   @ip   char(15)   )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

/**//*--数字   IP   转换成格式化   IP   地址       --邹建   2004.08(引用请保留此信息)--*/       /**//*--调用示例       select   dbo.f_Int2IP(3232235531)   select   dbo.f_Int2IP(212336641)   */  
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