欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

通過Web Service實(shí)現(xiàn)IP地址查詢功能的示例

 更新時間:2017年12月08日 09:07:10   作者:明日學(xué)院  
下面小編就為大家分享一篇通過Web Service實(shí)現(xiàn)IP地址查詢功能的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

實(shí)例01 實(shí)現(xiàn)一個簡單的Web服務(wù)訪問

本實(shí)例將實(shí)現(xiàn)IP地址查詢接口服務(wù),根據(jù)用戶傳入的IP地址返回IP所在的省、市、地區(qū),實(shí)例中將會用到IP地址庫用于查詢信息,由于數(shù)據(jù)較多,所以讀者可在光盤資源文件中直接附加數(shù)據(jù)庫文件,這里將不再介紹導(dǎo)入數(shù)據(jù)的過程。

程序?qū)崿F(xiàn)步驟如下:

(1)打開Visual Studio 2017開發(fā)環(huán)境,然后依次點(diǎn)擊文件→新建→項(xiàng)目,在彈出的新建項(xiàng)目對話框中選擇“ASP.NET Web應(yīng)用程序”選項(xiàng),然后更改項(xiàng)目名稱和項(xiàng)目路徑,如圖12.1所示。

圖12.1 新建ASP.NET Web應(yīng)用程序

(2)單擊“確定”按鈕,將彈出選擇項(xiàng)目類型對話框,在該對話框中可選擇Web Forms或MVC等項(xiàng)目類型,這里選擇“Empty”空項(xiàng)目類型,然后點(diǎn)擊確定按鈕,如圖12.2所示。

圖12.2 創(chuàng)建空項(xiàng)目

(3)Ip地址查詢功能的條件屬于IP地址段范圍查找,所以在進(jìn)行篩選時通常要將IP地址轉(zhuǎn)換成Int類型,這樣做是方便于數(shù)據(jù)的范圍篩選,所以接下來定義IP地址的數(shù)據(jù)類型轉(zhuǎn)換方法,代碼如下:

privatelong IPToNumber(string ip)//定義IP轉(zhuǎn)Int方法,參數(shù)ip為用戶要查詢的ip地址
  {
 try
  {
 char[] separator = newchar[] { '.' };//定義char類型的分割數(shù)組
 string[] items = ip.Split(separator); //將ip字符串以“.”進(jìn)行分割并返回?cái)?shù)組
 //將ip地址的每一段拆分成二進(jìn)制形式,然后再將二進(jìn)制轉(zhuǎn)換成無符號的32位整數(shù)
 returnlong.Parse(items[0]) << 24 | long.Parse(items[1]) << 16 
 | long.Parse(items[2]) << 8 | long.Parse(items[3]);
  }
 catch
  {
 return 0;//如果發(fā)生異常則返回0
  }
  }

(4)接著定義獲取IP地址的公開方法,該方法將帶有一個字符串類型的參數(shù),參數(shù)表示用戶要查詢地區(qū)的IP地址,代碼如下:

[WebMethod(Description = "IP地址歸屬地查詢")]
 publicstringGetIPToArea (string ip)
 {
 long IP = IPToNumber(ip);//傳入string類型的ip地址,返回long類型的ip地址
 //創(chuàng)建數(shù)據(jù)庫連接對象
 SqlConnection conn = 
 newSqlConnection("Server=127.0.0.1;Database=School;Uid=sa;Pwd=123456");
  conn.Open();    //打開數(shù)據(jù)庫
 DataSet ds = newDataSet(); //定義DataSet
 //創(chuàng)建數(shù)據(jù)適配器
 SqlDataAdapter sda = 
 newSqlDataAdapter("select * from IpAddress where IP1<=" + IP + " and IP2>=" + IP, conn);
  sda.Fill(ds);    //填充DataSet
  conn.Dispose();    //釋放數(shù)據(jù)庫使用資源
 DataTable dt = ds.Tables[0];//返回查詢的數(shù)據(jù)表
 if (dt.Rows.Count > 0)  //判斷如果數(shù)據(jù)總數(shù)大于0
  {
 string Province = (string)dt.Rows[0]["Province"];//獲取省
 string City = (string)dt.Rows[0]["City"];  //獲取市
 return ip + ","+Province + "," + City;   //將ip地址與省和市拼接然后返回
  }
 return"未找到IP地址所對應(yīng)的地區(qū)信息";    //返回?zé)o數(shù)據(jù)信息
  }

代碼完成之后,接下就是調(diào)用這個服務(wù),首先運(yùn)行這個服務(wù)頁面,這與運(yùn)行Web頁面相同,在彈出來的網(wǎng)頁中包含了對于這個服務(wù)頁面的說明,其中頁面上有兩個可點(diǎn)擊的連接,該連接對應(yīng)的是服務(wù)中定義的方法名稱,一個是剛才定義GetIPToArea方法,并且?guī)в蟹椒枋鲂畔?,另一個則是創(chuàng)建服務(wù)頁面時自動生成的測試方法,這里直接點(diǎn)擊GetIPToArea方法連接,如圖12.3所示。

圖12.3 Web服務(wù)幫助頁面

點(diǎn)擊之后頁面會跳轉(zhuǎn)到可對該方法執(zhí)行調(diào)用的頁面,這個頁面幫助我們可以很方便的測試創(chuàng)建的服務(wù)。在頁面上有一個文本框用于輸入方法的參數(shù)值,并且下面還有一個“調(diào)用”按鈕,當(dāng)用戶輸入完參數(shù)值后,點(diǎn)擊“調(diào)用”按鈕即可執(zhí)行服務(wù)程序然后等待返回結(jié)果,如圖12.4所示。

圖12.4 Web服務(wù)調(diào)用頁面

最后調(diào)用結(jié)果將會以彈出新的窗口來顯示,如圖12.5所示。

圖12.5 GetIPToArea方法返回的結(jié)果頁面

從上面的測試結(jié)果可以看出,Web服務(wù)的方法的返回結(jié)果是使用XML進(jìn)行編碼的。

實(shí)例02 實(shí)現(xiàn)局域網(wǎng)內(nèi)的Web服務(wù)訪問

在本地環(huán)境下可通過將Web服務(wù)發(fā)布到IIS中,在進(jìn)行調(diào)用者的訪問。本實(shí)例將實(shí)現(xiàn)如何在本地環(huán)境下進(jìn)行調(diào)用Web服務(wù)。

(1)首先打開IIS管理工具,在IIS管理工具中“網(wǎng)站”的節(jié)點(diǎn)下創(chuàng)建一個網(wǎng)站,目錄指定已經(jīng)編寫好的Web服務(wù)應(yīng)用程序文件夾,然后命名網(wǎng)站名稱并分配IP地址和端口號。這個過程同創(chuàng)建網(wǎng)站站點(diǎn)相同,最后點(diǎn)擊“確定”按鈕完成創(chuàng)建,如圖12.6所示。

圖12.6 發(fā)布Web服務(wù)到IIS

圖12.6中創(chuàng)建的Web服務(wù)站點(diǎn)指定目錄為實(shí)例01中創(chuàng)建的的Web服務(wù)引用程序,所以接下來在創(chuàng)建一個網(wǎng)站程序用于調(diào)用Web服務(wù),該過程主要演示如何添加“服務(wù)引用”的操作。

(2)首先新建一個網(wǎng)站并創(chuàng)建Default.aspx頁面,在頁面中添加一個TextBox控件、一個Button控件和兩個Label控件,分別用來輸入IP地址、執(zhí)行查詢操作和顯示結(jié)果信息。

(3)在項(xiàng)目上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“添加”→“服務(wù)引用”選項(xiàng),彈出“添加服務(wù)引用”對話框,如圖12.7所示。

圖12.7 “添加服務(wù)引用”對話框

(4)引用添加完成之后,將在“解決方案資源管理器”中添加一個名為App_WebReferences的目錄,在該目錄中將顯示命名空間為ServiceReference1的服務(wù),如圖12.8所示。

圖12.8 添加的ServiceReference1服務(wù)

(5)在Default.aspx頁的“查詢IP地址”按鈕控件的Click事件中,通過調(diào)用服務(wù)對象的GetIPToArea方法查詢信息,代碼如下:

protectedvoid Button1_Click(object sender, EventArgs e)
  {
   ServiceReference1.WebService1SoapClient webService1SoapClient = 
 new ServiceReference1.WebService1SoapClient();
 string Result = webService1SoapClient.GetIPToArea(this.TextBox1.Text);
 while (Result.IndexOf(",") > -1)
   {
    Result = Result.Replace(",", "<br/>");
   }
 this.Label1.Text = "以下為輸出IP、省、市的結(jié)果:";
 this.Label2.Text = Result;
 }

運(yùn)行Default.aspx頁面,在文本框中輸入一個有效的IP地址,然后點(diǎn)擊“查詢IP地址”按鈕,頁面將會輸出查詢到的結(jié)果信息,如圖12.9所示。

圖12.9 調(diào)用Web服務(wù)結(jié)果

本文摘自明日科技出版的《零基礎(chǔ)學(xué)ASP.NET》

以上這篇通過Web Service實(shí)現(xiàn)IP地址查詢功能的示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • .NET?Core實(shí)現(xiàn)簡單的Redis?Client框架

    .NET?Core實(shí)現(xiàn)簡單的Redis?Client框架

    本文詳細(xì)講解了.NET?Core實(shí)現(xiàn)簡單的Redis?Client框架,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • ASP.NET操作EXCEL的總結(jié)篇

    ASP.NET操作EXCEL的總結(jié)篇

    今年有個系統(tǒng)的部分EXCEL的操作也讓我做,順便結(jié)合之前操作EXCEL的經(jīng)驗(yàn)作一下總結(jié),可能也算不上什么,對于絕大多數(shù)來說也沒什么技術(shù)含量,網(wǎng)上一搜一大把,但我想還是有必要總結(jié)一下
    2011-02-02
  • 學(xué)習(xí)制作MVC4分頁控件(下)

    學(xué)習(xí)制作MVC4分頁控件(下)

    這篇文章主要教大家學(xué)習(xí)制作MVC4分頁控件,自己動手編寫HtmlHelper-Pager分頁控件,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Redis中pop出隊(duì)列多個元素思考

    Redis中pop出隊(duì)列多個元素思考

    本文主要介紹了Redis中pop出隊(duì)列多個元素思考,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 一個簡答的Access下的分頁asp.net代碼

    一個簡答的Access下的分頁asp.net代碼

    一個簡答的Access下的分頁asp.net代碼
    2010-03-03
  • .NET Core實(shí)現(xiàn)分表分庫、讀寫分離的通用 Repository功能

    .NET Core實(shí)現(xiàn)分表分庫、讀寫分離的通用 Repository功能

    這篇文章主要介紹了.NETCore 下支持分表分庫、讀寫分離的通用 Repository,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • asp.net編程獲取項(xiàng)目根目錄實(shí)現(xiàn)方法集合

    asp.net編程獲取項(xiàng)目根目錄實(shí)現(xiàn)方法集合

    這篇文章主要介紹了asp.net編程獲取項(xiàng)目根目錄實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析總結(jié)了asp.net針對項(xiàng)目目錄的操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2015-11-11
  • ASP.NET中實(shí)現(xiàn)文件的保護(hù)性下載基礎(chǔ)篇

    ASP.NET中實(shí)現(xiàn)文件的保護(hù)性下載基礎(chǔ)篇

    許多時候,我們需要在因特網(wǎng)上提供文件下載服務(wù),但是又要防止未經(jīng)授權(quán)的下載,這時該怎么辦?本文將為讀者詳細(xì)介紹一種使用ASP.NET實(shí)現(xiàn)的HTTP處理程序的解決方案。
    2011-02-02
  • 近幾天對DataSet的新認(rèn)識

    近幾天對DataSet的新認(rèn)識

    近幾天對DataSet的新認(rèn)識...
    2007-04-04
  • VS2012下QT creator登錄對話框設(shè)計(jì)

    VS2012下QT creator登錄對話框設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了VS2012下QT creator登錄對話框的設(shè)計(jì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評論