宝哥软件园

通过网络服务查询IP地址功能示例

编辑:宝哥软件园 来源:互联网 时间:2021-09-02

示例01实现了一个简单的网络服务访问

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

方案实施步骤如下:

(1)打开Visual Studio 2017开发环境,依次点击文件新建项目,选择【ASP。NET web application "选项中弹出新建项目对话框,然后更改项目名称和项目路径,如图12.1所示。

图12.1新ASP.NET网络应用程序

(2)点击“确定”打开项目类型选择对话框,可以选择Web Forms或MVC等项目类型,选择“空”空项目类型,然后点击“确定”,如图12.2所示。

图12.2创建一个空项目

(3)IP地址查询功能的条件属于IP地址范围搜索,所以过滤时通常将IP地址转换为int类型,便于数据范围过滤,所以接下来定义IP地址的数据类型转换方法,代码如下:

私有长ip到数字(字符串ip)//定义IP到Int方法。参数IP是IP地址{尝试{char []分隔符=新char [] { '。'}用户想要查询的。//定义char类型[] items=ip.split(分隔符)的拆分数组字符串;//将ip字符串除以“.”并返回到数组//将ip地址的每个段拆分为二进制形式,然后将二进制转换为无符号的32位整数return long . parse(items[0])24 | long . parse(items[1])16 | long . parse(items[2])8 } catch { return 0;//如果出现异常,则返回0} }(4)然后定义获取IP地址的公共方法,该方法将采用字符串类型参数,该参数指示用户要查询的区域的IP地址。代码如下:

【WebMethod(Description='IP地址归属查询')】publicstringgetiptoreaea(字符串IP){ long IP=IP to number(IP);//传入字符串类型的ip地址并返回长类型的ip地址。//创建数据库连接对象sqlconnectionconn=new sqlconnection(' server=127 . 0 . 0 . 1;数据库=学校;Uid=sapwd=123456’;conn . Open();//打开数据库DataSet ds=new DataSet();//定义数据集//创建数据适配器sqldata adapter sda=newsql dataadapter('从IP地址中选择*其中ip1=' IP '和ip2=' IP,conn ');sda。填充(ds);//填充数据集conn . Dispose();//释放数据库资源DataTable dt=ds。表[0];//返回查询的数据表if (dt。Rows.Count 0) //判断总数据是否大于0 {string省份=(string) dt.rows [0] ['省份'];//获取省字符串city=(string)dt . rows[0][' city '];//获取城市返回ip ','省','市;//将ip地址与省市拼接,返回}返回“未找到IP地址对应的区域信息”;//不返回数据信息}代码完成后,下一步就是调用这个服务。首先,运行此服务页面,这与运行网页相同。弹出网页包含此服务页面的描述。页面上有两个可点击的连接,它们对应于服务中定义的方法名。一个是刚刚用方法描述信息定义的GetIPToArea方法,另一个是创建服务页面时自动生成的测试方法。

图12.3网络服务帮助页面

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

图12.4网络服务呼叫页面

最后,调用结果将显示在一个弹出窗口中,如图12.5所示。

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

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

示例02局域网中网络服务访问的实现

在本地环境中,调用者可以通过将Web服务发布到IIS来访问它。这个例子将实现如何在本地环境中调用Web服务。

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

图12.6向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添加的服务参考1服务

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

protectedvoid Button1_Click(对象发送者,事件参数e) { ServiceReference1。web service 1 soapclient web service 1 soapclient=new service reference 1。web service 1 Soapclient();字符串结果=webService1SoapClient。GetIPToArea(这个。文本框1 .文本);而(结果。索引(',')-1) {结果=结果。替换(',',' br/');}这个。Label1.Text='以下是导出IP、省市的结果:';这个。标签2 .文本=结果;}运行Default.aspx页面,在文本框中输入有效的IP地址,然后点击“查询IP地址”按钮,页面将输出查询结果信息,如图12.9所示。

图12.9调用网络服务的结果

本文摘自明天科技发布的《零基础学ASP.NET》

以上通过Web Service实现IP地址查询功能的例子,都是边肖分享给大家的内容,希望能给大家一个参考和支持。

更多资讯
游戏推荐
更多+