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

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

程序实现步骤如下:

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

图12.1  新建ASP.NET Web应用程序

(2)单击“确定”按钮,将弹出选择项目类型对话框,在该对话框中可选择Web Forms或MVC等项目类型,这里选择“Empty”空项目类型,然后点击确定按钮,如图12.2所示。

图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所示。

图12.3  Web服务帮助页面

点击之后页面会跳转到可对该方法执行调用的页面,这个页面帮助我们可以很方便的测试创建的服务。在页面上有一个文本框用于输入方法的参数值,并且下面还有一个“调用”按钮,当用户输入完参数值后,点击“调用”按钮即可执行服务程序然后等待返回结果,如图12.4所示。

图12.4  Web服务调用页面

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

图12.5  GetIPToArea方法返回的结果页面

从上面的测试结果可以看出,Web服务的方法的返回结果是使用XML进行编码的。

实例02  实现局域网内的Web服务访问

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

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

图12.6  发布Web服务到IIS

图12.6中创建的Web服务站点指定目录为实例01中创建的的Web服务引用程序,所以接下来在创建一个网站程序用于调用Web服务,该过程主要演示如何添加“服务引用”的操作。

(2)首先新建一个网站并创建Default.aspx页面,在页面中添加一个TextBox控件、一个Button控件和两个Label控件,分别用来输入IP地址、执行查询操作和显示结果信息。

(3)在项目上单击鼠标右键,在弹出的快捷菜单中选择“添加”→“服务引用”选项,弹出“添加服务引用”对话框,如图12.7所示。

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

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

图12.8  添加的ServiceReference1服务

(5)在Default.aspx页的“查询IP地址”按钮控件的Click事件中,通过调用服务对象的GetIPToArea方法查询信息,代码如下:

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所示。

图12.9  调用Web服务结果

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

通过Web Service实现IP地址查询功能相关推荐

  1. java webservice ip_通过Web Service实现IP地址查询功能的示例

    实例01 实现一个简单的Web服务访问 本实例将实现IP地址查询接口服务,根据用户传入的IP地址返回IP所在的省.市.地区,实例中将会用到IP地址库用于查询信息,由于数据较多,所以读者可在光盘资源文件 ...

  2. 用java程序编写ip仿真器_用java 编写一个可以实现IP地址查询功能的课程设计

    展开全部 下面是获得本机IP地址的方法,跟你的程序捆绑起来,互相发送消息的时候直接将IP发送过去 private static String[] getAllLocalHostIP(){ 323131 ...

  3. java ip归属地查询_JAVA版IP地址查询调用示例

    package cn.juhe; import net.sf.json.JSONObject; import org.springframework.web.client.RestTemplate; ...

  4. 发布IP地址查询的WEB SERVICE

    在值得期待的2005来临之际,发布IP地址查询WEB SERVICE,顺祝博客园的所有朋友们,新年快乐,新年好心情. http://IPLOOKUP.ASPSIR.COM 此外,WHOIS查询WEB ...

  5. 探索浏览器(二)向DNS服务器查询Web服务器的IP地址

    1.IP地址基础知识 (1)尽管浏览器能解析网址并生成HTTP消息,但它本身是不能发送网络消息的,这必须委托给操作系统来实现.在此之前,我们要查询网址中的服务器域名找到对应的IP地址.所以任务又可以细 ...

  6. 【网络是怎么连接的】—— 1.2 向 DNS 服务器查询 Web 服务器的 IP 地址

    目录 1.2 向 DNS 服务器查询 Web 服务器的 IP 地址 1.2.1 IP地址基础知识 1.2.2 域名和 IP 地址并用的理由 1.2.3 Socket 库提供查询 IP 地址的功能 1. ...

  7. 《网络是怎样连接的》第一章第二节:向DNS服务器查询Web服务器的IP地址

    <网络是怎样连接的>第一章:浏览器生成消息 概述:这本书以 "从在浏览器输入网址,到屏幕显示出网页,当中到底发生了什么?"为疑问,探究其中的过程.本章讲的是浏览器怎么把 ...

  8. 通过ip地址查询远程服务器系统,通过ip地址查询远程服务器系统

    通过ip地址查询远程服务器系统 内容精选 换一换 日志记录了系统的运行情况和功能流程的处理情况,是维护人员查看系统状态.进行问题定位的重要工具和手段.日志模块根据系统设置的日志级别,记录不同详细程度的 ...

  9. 公用ip地址查询_是什么使您无法更改公用IP地址并在Internet上造成严重破坏?

    公用ip地址查询 What exactly is preventing you (or anyone else) from changing their IP address and causing ...

最新文章

  1. 你知道我今天为什么来公司上班吗?
  2. java的函数传值_java 函数形参传值和传引用的区别[转]
  3. Geany编辑器配置Python路径(Windows10)
  4. ReviewForJob——最小生成树(prim + kruskal)源码实现和分析
  5. 认识Skeleton Screen【屏幕加载骨架】
  6. java 整数变负数_一文帮你读懂Java整数的存储原理
  7. linux关闭计算机的命令是,关闭Linux计算机的正确命令和方法
  8. JS (与运算)详解
  9. 对象创建型 - 单利模式
  10. widows下 python环境变量配置
  11. 【C++程序设计实践】实验十一
  12. MATLAB中pdetool工具求解泊松方程和Laplace方程
  13. c语言scanf用法
  14. CSI-RS资源配置
  15. 0投入,高收益,门槛低,自媒体副业推荐
  16. STM32驱动直流电机的程序与电路设计(IR2110S自举电路+H桥+高级定时器和死区PWM)
  17. python英文单词记忆游戏单词爆破机
  18. Oracle表空间和数据文件
  19. nonebot,cqhttp 机器人学习1
  20. c语言nba球星信息系统,NBA:超神控卫

热门文章

  1. 最全APP测试思想及流程要点,高薪测试人员一定要看
  2. 龙芯Fedora21平台制作docker镜像,并且解决vi乱码问题
  3. 冰雪第一天历险 - 2014 年的冬天第一场站得住的雪?
  4. 09 | I/O优化(上):开发工程师必备的I/O优化知识
  5. 机器学习(八):CS229ML课程笔记(4)——生成学习,高斯判别分析,朴素贝叶斯
  6. ADC基本原理与STM32F030ADC应用
  7. STM32按键设计一之扫描
  8. AcWing算法基础课 第一讲小结(持续更新中)
  9. python匿名函数调用_python之内置函数,匿名函数
  10. Mac电脑3D渲染和动画制作KeyShot Pro中文