ip地址与数字相互转换的sql函数

if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[f_IP2Int]')   and   xtype   in   (N'FN',   N'IF',   N'TF'))   
  
drop   function   [dbo].[f_IP2Int]   
  
GO   
    
  
/*--字符型   IP   地址转换成数字   IP   
    
  --邹建   2004.08(引用请保留此信息)--
*/
   
    
  
/*--调用示例   
    
  select   dbo.f_IP2Int('192.168.0.11')   
  select   dbo.f_IP2Int('12.168.0.1')   
  --
*/
   
  
CREATE   FUNCTION   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   
  
GO   
    
    
    
  
if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[f_Int2IP]')   and   xtype   in   (N'FN',   N'IF',   N'TF'))   
  
drop   function   [dbo].[f_Int2IP]   
  
GO   
    
  
/*--数字   IP   转换成格式化   IP   地址   
    
  --邹建   2004.08(引用请保留此信息)--
*/
   
    
  
/*--调用示例   
    
  select   dbo.f_Int2IP(3232235531)   
  select   dbo.f_Int2IP(212336641)   
  --
*/
   
  
CREATE   FUNCTION   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   
posted @   Robin Zhang  阅读(5078)  评论(4编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示