一种方法,和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 ,完成。