当前位置:首页 > 编程教程 > asp.net教程 > 通过Web Service实现IP地址查询功能

通过Web Service实现IP地址查询功能

2017-12-07 18:08:37[asp.net教程]点击数:作者:明日学院来源: 网络
随机为您推荐的文章:Chetsheet: 2017 01.01 ~ 01.31

在这里将为大家介绍的是Chetsheet: 2017 01.01 ~ 01.31的相关介绍,具体代码请看下文Web     TypeScript: the missing introduction    Async HTTP API and service bus    O

在这里将为大家介绍的是通过Web Service实现IP地址查询功能的相关内容,具体内容请看下面

实例01实现一个简单的Web服务访问

本实例将实现IP地址查询接口服务,根据用户传入的IP地址返回IP所在的省、市、地区,实例中将会用到IP地址库用于查询信息,由于数据较多,所以读者可在光盘资源文件中直接附加数据库文件,这里将不再介绍导入数据的过程。

程序实现步骤如下:

(1)打开Visual Studio 2017开发环境,然后依次点击文件→新建→项目,在弹出的新建项目对话框中选择“ASP.NET Web应用程序”选项,然后更改项目名称和项目路径,如图12.1所示。

通过Web Service实现IP地址查询功能

图12.2 创建空项目

(3)Ip地址查询功能的条件属于IP地址段范围查找,所以在进行筛选时通常要将IP地址转换成Int类型,这样做是方便于数据的范围筛选,所以接下来定义IP地址的数据类型转换方法,代码如下:

01     privatelong IPToNumber(string ip)//定义IP转Int方法,参数ip为用户要查询的ip地址
02      {
03     try
04         {
05     char[] separator = newchar[] { '.' };//定义char类型的分割数组
06     string[] items = ip.Split(separator); //将ip字符串以“.”进行分割并返回数组
07     //将ip地址的每一段拆分成二进制形式,然后再将二进制转换成无符号的32位整数
08     returnlong.Parse(items[0]) << 24 | long.Parse(items[1]) << 16 
09     | long.Parse(items[2]) << 8 | long.Parse(items[3]);
10         }
11     catch
12       {
13     return 0;//如果发生异常则返回0
14         }
15      }

(4)接着定义获取IP地址的公开方法,该方法将带有一个字符串类型的参数,参数表示用户要查询地区的IP地址,代码如下:

01     [WebMethod(Description = "IP地址归属地查询")]
02     publicstringGetIPToArea (string ip)
03     {
04     long IP = IPToNumber(ip);//传入string类型的ip地址,返回long类型的ip地址
05     //创建数据库连接对象
06     SqlConnection conn = 
07     newSqlConnection("Server=127.0.0.1;Database=School;Uid=sa;Pwd=123456");
08         conn.Open();                //打开数据库
09     DataSet ds = newDataSet(); //定义DataSet
10     //创建数据适配器
11     SqlDataAdapter sda = 
12     newSqlDataAdapter("select * from IpAddress where IP1<=" + IP + " and IP2>=" + IP, conn);
13         sda.Fill(ds);               //填充DataSet
14         conn.Dispose();             //释放数据库使用资源
15     DataTable dt = ds.Tables[0];//返回查询的数据表
16     if (dt.Rows.Count > 0)      //判断如果数据总数大于0
17         {
18     string Province = (string)dt.Rows[0]["Province"];//获取省
19     string City = (string)dt.Rows[0]["City"];        //获取市
20     return ip + ","+Province + "," + City;           //将ip地址与省和市拼接然后返回
21         }
22     return"未找到IP地址所对应的地区信息";               //返回无数据信息
23      }

代码完成之后,接下就是调用这个服务,首先运行这个服务页面,这与运行Web页面相同,在弹出来的网页中包含了对于这个服务页面的说明,其中页面上有两个可点击的连接,该连接对应的是服务中定义的方法名称,一个是刚才定义GetIPToArea方法,并且带有方法描述信息,另一个则是创建服务页面时自动生成的测试方法,这里直接点击GetIPToArea方法连接,如图12.3所示。

通过Web Service实现IP地址查询功能

图12.4 Web服务调用页面

最后调用结果将会以弹出新的窗口来显示,如图12.5所示。

通过Web Service实现IP地址查询功能

在本地环境下可通过将Web服务发布到IIS中,在进行调用者的访问。本实例将实现如何在本地环境下进行调用Web服务。

(1)首先打开IIS管理工具,在IIS管理工具中“网站”的节点下创建一个网站,目录指定已经编写好的Web服务应用程序文件夹,然后命名网站名称并分配IP地址和端口号。这个过程同创建网站站点相同,最后点击“确定”按钮完成创建,如图12.6所示。

通过Web Service实现IP地址查询功能

图12.7 “添加服务引用”对话框

(4)引用添加完成之后,将在“解决方案资源管理器”中添加一个名为App_WebReferences的目录,在该目录中将显示命名空间为ServiceReference1的服务,如图12.8所示。

通过Web Service实现IP地址查询功能24 protectedvoid Button1_Click(object sender, EventArgs e) 25 { 26 ServiceReference1.WebService1SoapClient webService1SoapClient = 27 new ServiceReference1.WebService1SoapClient(); 28 string Result = webService1SoapClient.GetIPToArea(this.TextBox1.Text); 29 while (Result.IndexOf(",") > -1) 30 { 31 Result = Result.Replace(",", "<br/>"); 32 } 33 this.Label1.Text = "以下为输出IP、省、市的结果:"; 34 this.Label2.Text = Result; 35 }

运行Default.aspx页面,在文本框中输入一个有效的IP地址,然后点击“查询IP地址”按钮,页面将会输出查询到的结果信息,如图12.9所示。

通过Web Service实现IP地址查询功能

图12.9 调用Web服务结果

本文摘自明日科技出版的《零基础学ASP.NET》,转载请注明出处!!!

多多关注织梦者,我们将为您收集更多的.net相关文章.

这些内容可能对你也有帮助

更多asp.net教程可查看asp.net教程列表页。

TAGS: 查询功能   地址   Web   Service   IP