IP address in windows phone 8

2019-01-09 15:09发布

i need to find the IP address of the phone my software is running on. I would have thought that is straight forward but having searched the forums it seems like (unbelievably enough) that there isn't a method for this in windows phone 7 - however, has this changed in windows phone 8? any help would be appreciated.

3条回答
地球回转人心会变
2楼-- · 2019-01-09 15:38

Of course there is a way to find the phones IP address. Here is a MSDN blog blog article which explains how to do it: Finding Your Own IP Address On Windows Phone Mango

I've just tested it on my Nokia Lumia 920 (Windows Phone 8) and it works just fine. However, this just works on WiFi due to the used multicast IP.

查看更多
Animai°情兽
3楼-- · 2019-01-09 15:38

Code for 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;
}
查看更多
再贱就再见
4楼-- · 2019-01-09 15:43

Yes this is now possible in WP8 without using the multicast solution required for WP7. Note that you will have multiple network interfaces on your phone (e.g. three on my WP8 Emulator)

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

HTH

查看更多
登录 后发表回答