当前位置: 代码迷 >> Sql Server >> .net , C#net ,IP数据库匹配,该如何解决
  详细解决方案

.net , C#net ,IP数据库匹配,该如何解决

热度:50   发布时间:2016-04-27 18:40:24.0
.net , C#.net ,IP数据库匹配
请问各位大哥,我在网上下了一个IP数据库下来,看到那些数据懵了,我不知道怎么样匹配




它的数据是这样的
  IP1 IP2 country city


2375745536 2375919871 黑龙江省鸡西市 东北虎




  请问,如果我知道了一个IP地址,我该怎么匹配啊???

  各位大哥帮帮忙啊,在线等!!!!


------解决方案--------------------
SQL code
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--1. 字符串IP地址转换成IP数值函数。CREATE FUNCTION dbo.f_IP2Int(@ip char(15))RETURNS bigintASBEGIN    DECLARE @re bigint    SET @re=0    SELECT @[email protected]+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)ENDGO/*===========================================================*/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--1. 字符串IP地址转换成IP数值函数。CREATE FUNCTION dbo.f_Int2IP(@IP bigint)RETURNS varchar(15)ASBEGIN    DECLARE @re varchar(15)    SET @re=''    SELECT @[email protected]+'.'+CAST(@IP/ID as varchar)        ,@[email protected]%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,''))ENDGO
  相关解决方案