如何用SQL Server 2005存储过程实现IP地址归属地查询

发布时间:2021-09-18 10:25:19 作者:chen
来源:亿速云 阅读:113

这篇文章主要介绍“如何用SQL Server 2005存储过程实现IP地址归属地查询”,在日常操作中,相信很多人在如何用SQL Server 2005存储过程实现IP地址归属地查询问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用SQL Server 2005存储过程实现IP地址归属地查询”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  1、用C#来做DLL,代码如下:

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data.SqlTypes;usingSystem.Data.SqlClient;usingMicrosoft.SqlServer.Server;publicclassAddrInfo[Microsoft.SqlServer.Server.SqlProcedure]publicstaticvoidgetAddrInfo(SqlStringip,outSqlStringinfo)using(SqlConnectionconnection=newSqlConnection("contextconnection=true"))//IP地址转为数字string[]tmp=ip.Value.Split(newstring[]{"."},StringSplitOptions.None);Int64ipn=ToInt(ToBinary(tmp[0])+ToBinary(tmp[1])+ToBinary(tmp[2])+ToBinary(tmp[3]));connection.Open();SqlCommandcmd=newSqlCommand();cmd.Connection=connection;cmd.CommandType=System.Data.CommandType.Text;cmd.CommandText="selectaddr_infofromCZIPwhereipn1<="+ipn.tostring()+"andipn2>="+ipn.ToString();SqlDataReaderdr=cmd.ExecuteReader();using(dr)if(dr.Read())info=dr.GetString(0);elseinfo="<无归属地数据>";}}//////INT32转为二进制字符串/////////privatestaticStringToBinary(stringnum)intpiNumber=Int32.Parse(num);stringstrBinary="";intiTmp;doiTmp=piNumber%2;strBinary=iTmp.ToString()+strBinary;piNumberpiNumber=piNumber/2;}while(piNumber!=0);returnstrBinary.PadLeft(8,'0');}////////////privatestaticlongToInt(stringpStrBinary)char[]charArr=pStrBinary.ToCharArray();longiReturnValue=0;intiPow=0;for(inti=0;i

  怎样用SQLServer2005存储过程实现IP地址归属地查询

  2、将编译后的DLL放到SQLSERVER2005所在的服务器上,假设路径为c:\clr\ipLib.dll以下方法注册程序集。

CREATEASSEMBLY[ipLib]FROM'c:\clr\ipLib.dll'

  3、创建存储过程

CREATEPROCEDUREget_ip_addr_info@ipnvarchar(20),@infonvarchar(500)OUTPUTASEXTERNALNAMEipLib.AddrInfo.getAddrInfo

  之后你就可以看到名为get_ip_addr_info的存储过程,调用方法与普通T/SQL存储过程相同。

到此,关于“如何用SQL Server 2005存储过程实现IP地址归属地查询”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. sql server2008调试存储过程的完整步骤
  2. SQL Server 默认跟踪(Default Trace)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sql server ip

上一篇:网站优化常见问题有哪些

下一篇:bootstrap都有哪些插件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》