[置頂] C#中通過調用webService擷取上網IP地址的地區的方法

來源:互聯網
上載者:User
文章目錄
  • 通過輸入IP地址查詢國家、城市、所有者等資訊。沒有註明國家的為中國

         最近在開發項目的過程中需要擷取使用者查詢時的IP地址的地區,以用來做統計分析用。經過一番查閱資料,然後寫了個測試程式,很快就搞定了這個功能。

現在分享下我的實現方法,大家如果有更好的實現,歡迎提出哦。

首先我找到了一個比較好用的查詢IP地址歸屬地的公用的WebService,http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx

調用其中的getCountryCityByIp
方法可以擷取到具體的IP的地區地址。該WebService的說明如下:

getCountryCityByIp

通過輸入IP地址查詢國家、城市、所有者等資訊。沒有註明國家的為中國

輸入參數:IP地址(自動替換 " 。" 為 "."),返回資料: 一個一維字串數組String(1),String(0) = IP地址;String(1) = 查詢結果或提示

接下來就是要擷取使用者當前電腦的上網IP了,具體的實現方法如下所示:

/// <summary>
        /// 擷取原生上網IP
        /// </summary>
        /// <returns></returns>
        private string GetConnectNetAddress()
        {
            string strUrl = "http://www.ip138.com/ip2city.asp"; //獲得IP的網址
            Uri uri = new Uri(strUrl);
            WebRequest webreq = WebRequest.Create(uri);
            Stream s = webreq.GetResponse().GetResponseStream();
            StreamReader sr = new StreamReader(s, Encoding.Default);
            string all = sr.ReadToEnd(); //讀取網站返回的資料 格式:您的IP地址是:[x.x.x.x]
            int i = all.IndexOf("[") + 1;
            string tempip = all.Substring(i, 15);
            string ip = tempip.Replace("]", "").Replace(" ", "").Replace("<", "");
            return ip;
        }

這個方法是http://www.ip138.com/ip2city.asp通過在這個網站上抓取到電腦的上網的IP地址來實現擷取原生上網的IP地址的。

當然如果那天這個網站更改了網域名稱或者不存在了,這個方法就不能用了哦,呵呵。

接下來的事情就很簡單了,將上面的webservice添加到項目中去,然後調用這個webservice來擷取上網的地區。

具體實現如下:

 /// <summary>
        /// 擷取上網IP的地區
        /// </summary>
        /// <returns></returns>
        private string GetConnectNetAddressArea()
        {
            string strIP = GetConnectNetAddress();
            IpAddressSearchWebService webService = new IpAddressSearchWebService();
            string[] strArea=webService.getCountryCityByIp(strIP);
            return strArea[1];
        }

這樣擷取使用者查詢的上網IP地址的地區就成功實現了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.