IP адрес в windows phone 8

мне нужно найти IP-адрес телефона, на котором работает мое программное обеспечение. Я бы подумал, что это прямолинейно, но после поиска по форумам кажется (достаточно невероятно), что в Windows Phone 7 нет метода для этого - однако изменилось ли это в Windows Phone 8? любая помощь будет оценена.


person morishuz    schedule 22.11.2012    source источник


Ответы (3)


Да, теперь это возможно в 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;
}

ХТН

person paiden    schedule 17.12.2012
comment
IPAddress и GetHostNames не существуют в Windows Phone SDK - person Omid Mafakher; 18.05.2015

Конечно, есть способ узнать IP-адрес телефона. Вот статья в блоге MSDN, в которой объясняется, как это сделать: Поиск собственного IP-адреса на Windows Phone Mango

Я только что протестировал его на своем Nokia Lumia 920 (Windows Phone 8), и он отлично работает. Однако это работает только в WiFi из-за используемого многоадресного IP-адреса.

person S0me0ne    schedule 07.12.2012

Код для 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;
}
person Cloy    schedule 03.01.2017