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


  本文标签:SQL 函数 IP

  使用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