WP7:获得本机外网IP
一种方法,和PC端原理一样。通过读取某一网站数据,返回IP地址。
首先 我们判断下是否联网:
DeviceNetworkInformation.IsNetworkAvailable
需要引入命名空间:
using Microsoft.Phone.Net.NetworkInformation;
下面是方法:
public static void GetResponseText(string url, Action<string> action) { var request = WebRequest.CreateHttp(url); request.BeginGetResponse(ar => { string responseText; using (var response = request.EndGetResponse(ar)) responseText = GetResponseText(response); int start = responseText.IndexOf("[") + 1; int end = responseText.IndexOf("]"); string tempip = responseText.Substring(start, end - start); string ip = tempip; Deployment.Current.Dispatcher.BeginInvoke(() => action(ip));
}, null); }
通过传入的一个URL,然后 GetResponseText(response);
public static string GetResponseText(WebResponse response) { using (Stream stream = response.GetResponseStream()) { return new StreamReader(stream).ReadToEnd(); } }
将读取到的Text 赋给 responseText 。然后把得到的字符串截取。
最后调用方法:
if (DeviceNetworkInformation.IsNetworkAvailable) GetResponseText("http://www.ip138.com/ip2city.asp", s => textBlock.Text = "本机IP: " + s);
“http://www.ip138.com/ip2city.asp” 是获得IP 的网址。
OK ,完成。
世界不会在意你的自尊,人们看的只是你的成就。在你没有成就以前,切勿过分强调自尊。——比尔·盖茨 |