获取当前的Windows Phone 7的IP

时间:2012-11-12 00:09:08

标签: windows-phone-7 c#-4.0 windows-phone-7.1 windows-phone-8

我正在构建一个Windows Phone 7.1应用程序。我需要知道手机是否连接到任何Wifi,如果是,它在本地网络中的当前IP是什么(即192.168.0.100这样)。 我一直试图找出这些信息一段时间了。请帮忙。

我已设法通过使用以下代码

在我的控制台应用上获取本地IP
public 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做类似的事情。任何的想法 ?请分享。

2 个答案:

答案 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;
    }