我正在构建一个Windows Phone 7.1应用程序。我需要知道手机是否连接到任何Wifi,如果是,它在本地网络中的当前IP是什么(即192.168.0.100这样)。 我一直试图找出这些信息一段时间了。请帮忙。
我已设法通过使用以下代码
在我的控制台应用上获取本地IPpublic void ScanIP()
{
IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
{
String localIP = ip.ToString();
Console.WriteLine(localIP);
}
}
Console.ReadKey();
}
但是,我需要为windows mobile 7 app做类似的事情。任何的想法 ?请分享。
答案 0 :(得分:2)
执行多播并侦听回复。一旦识别出您的多播消息,您就可以获得发送者的IP(您自己)。您可以使用UdpAnySourceMulticastClient进行多播。如果您不在wifi网络中,您将在EndJoinGroup调用中遇到套接字故障。您应该处理异常并传递一个特定值,表明您不在wifi网络中。
Andy Pennell在此blog post中提供了更多信息。
答案 1 :(得分:0)
它将为您提供手机的IP地址......
public static IPAddress Find()
{
List<string> ipAddresses = new List<string>();
var hostnames = NetworkInformation.GetHostNames();
foreach (var hn in hostnames)
{
if (hn.IPInformation != null)
{
string ipAddress = hn.DisplayName;
ipAddresses.Add(ipAddress);
}
}
IPAddress address = IPAddress.Parse(ipAddresses[0]);
return address;
}