14

我需要找到运行我的软件的手机的 IP 地址。我原以为这是直截了当的,但是在搜索了论坛之后,似乎(令人难以置信)在 windows phone 7 中没有这种方法 - 但是,这在 windows phone 8 中是否发生了变化?任何帮助,将不胜感激。

4

3 回答 3

16

是的,这现在可以在 WP8 中实现,而无需使用 WP7 所需的多播解决方案。请注意,您的手机上会有多个网络接口(例如,我的 WP8 模拟器上有三个)

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

高温高压

于 2012-12-17T09:42:04.447 回答
3

当然,有一种方法可以找到手机的 IP 地址。这是一篇 MSDN 博客文章,它解释了如何做到这一点:在 Windows Phone Mango 上查找您自己的 IP 地址

我刚刚在诺基亚 Lumia 920 (Windows Phone 8) 上对其进行了测试,它运行良好。但是,由于使用了多播 IP,这仅适用于 WiFi。

于 2012-12-07T23:56:19.613 回答
0

Windows RT 代码

public static string GetIpAddress()
{
        var address = "";
        var icp = NetworkInformation.GetInternetConnectionProfile();

        if (icp != null && icp.NetworkAdapter != null)
        {
            var hostname =
                NetworkInformation.GetHostNames()
                    .SingleOrDefault(
                        hn =>
                        hn.IPInformation != null && hn.IPInformation.NetworkAdapter != null
                        && hn.IPInformation.NetworkAdapter.NetworkAdapterId
                        == icp.NetworkAdapter.NetworkAdapterId);

            if (hostname != null)
            {
                address = hostname.CanonicalName;
            }
        }
        return address;
}
于 2017-01-03T07:11:00.250 回答