zoukankan      html  css  js  c++  java
  • IP数字,数字IP

    DECLARE @ip VARCHAR(60)='113.118.138.159'
    DECLARE @ip_int BIGINT=[dbo].[f_IP2Int](@ip)

    SELECT [IPstart], [IPend], [M1], [M2], [M3], [M4]
    FROM [master].[dbo].[ipv]
    WHERE ipstart < @ip_int
      AND [IPend] > @ip_int
    GO

    SET STATISTICS IO ON
    SET STATISTICS TIME  ON

    CREATE CLUSTERED INDEX ix_action ON [ipv](ipstart,[IPend])

    select   dbo.f_IP2Int('113.118.138.159')  
    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 

  • 相关阅读:
    改变Ecplise项目窗口字体样式
    反射笔记
    日期、时间戳、字符串之间的转换
    Ajax处理后台返回的Json数据
    Ajax动态切换按钮
    生成随机数验证码
    Apache-SimpleEmail 简单应用
    Apache-POI 简单应用
    JavaMail API的应用
    checkbox怎么判断是否选中
  • 原文地址:https://www.cnblogs.com/qanholas/p/3183548.html
Copyright © 2011-2022 走看看