上篇是透過 Json API [C#.NET] 如何利用 JSON API 分析 IP Location來處理IP Location,本篇則是利用 http://www.fraudlabs.com/default.aspx 所提供的 Web Service 來處理,它能取得的欄位又更多,對於有需要的朋友是一大福音
IP2Location有三種版本Basic、Standard、Professional,不同的版本有不同的分析欄位,每個版本可以有每月90次的試用。
開始前要先註冊http://www.fraudlabs.com/userupdate.aspx,然後再取得Free License,註冊時需要用到E-Mail,好像只能用公司Domain的E-Mail帳號
PS.這還有許多其他的服務,有興趣的人可以自己玩玩
下載使用手冊
手冊上有寫著WS回傳的欄位是什麼,以及版本的差異
還有WS的位置:http://v1.fraudlabs.com/ip2locationwebservice.asmx?wsdl
Sample Code:http://www.fraudlabs.com/ip2locationsamplecodes.aspx
接下來就來實作
開一個新的專案,引用WS
使用WS的Method取得資訊
public IP2LocationOutput GetIp2LocationData(string IpAddress) { if (string.IsNullOrEmpty(IpAddress)) throw new ArgumentNullException("IpAddress"); IPAddress address; if (!IPAddress.TryParse(IpAddress, out address)) throw new FormatException("IpAddress"); IP2LocationWebService factory = new IP2LocationWebService(); IP2LocationInput ipInput = new IP2LocationInput(); IP2LocationOutput ipOutput = new IP2LocationOutput(); List<string> list = GetPropertyName<IP2LocationOutput>(); try { ipInput.IP = IpAddress; ipInput.LICENSE = "數字自己申請的Key"; //取得Location資訊 ipOutput = factory.IP2Location(ipInput); } catch { throw; } return ipOutput; }
使用VS內建的DataSource,建立物件,使用方式參考http://www.dotblogs.com.tw/yc421206/archive/2011/10/21/44807.aspx
拖拉進來後就後產生BindingSource,以及控制項的資料繫結
所以我只要將取得得IP2LocationOutput 類別,塞給iP2LocationOutputBindingSource BindingSource就可以了
private void button1_Click(object sender, EventArgs e) { IP2LocationOutput output = GetIp2LocationData("61.64.127.1"); this.iP2LocationOutputBindingSource.DataSource = output; }
執行結果如下