我的意思是纯真数据库里查出的某省市的IP和公司内部数据库中该省市的IP如何进行比较? 
就是想找出纯真数据库里多出来的IP比如公司数据库中 上海地区的IP保存格式为
027184000000 027191255255
058024000000 058025255255
058032000000 058034059255
。。
类似这样纯真数据库中查出的IP是
59.78.22.69 59.78.22.138
59.78.22.139 59.78.22.139
59.78.22.140 59.78.22.142
59.78.22.143 59.78.22.143
59.78.22.144 59.78.22.255现在就是因为公司数据库中的 各个省市的IP段不够全,所以想和传真数据库中查找到的IP段进行比较,纯真数据库中多出来的想在公司数据库中进行插入保存。但因为IP太多,无法人工进行一个一个的查找,请问大家有没有好一点的方法。

解决方案 »

  1.   


    SQLServer 中IP与INT之间互相转换
    /**//*--字符型   IP   地址转换成数字   IP   
        
        
    /**//*--调用示例   
        
    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   地址   
        
     
     --SQLServer 中INT与IP之间互相转换  
    /**//*--调用示例   
        
    select   dbo.f_Int2IP(3232235531)   
    select   dbo.f_Int2IP(212336641)   
    */   
    CREATE   FUNCTION   [dbo].[f_Int2IP](   
    @IP   bigint   
    )RETURNS   varchar(16)   
    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  
      

  2.   

    我的意思是想在纯真数据库中查找到的数据中找出公司内部IP段里没有的IP我已经将上海地区的IP从纯真数据库中拿出来了
    59.78.22.69 59.78.22.138
    59.78.22.139 59.78.22.139
    59.78.22.140 59.78.22.142
    59.78.22.143 59.78.22.143
    59.78.22.144 59.78.22.255
    类似这样。分的很细
    但我们公司内部数据库中的上海地区的IP段是
    027184000000 027191255255
    058024000000 058025255255
    058032000000 058034059255
    分的不细。
    我的意思是想在纯真数据库中查找到的数据中找出公司内部IP段里没有的IP