IP-адрес в телефоне Windows 8
Мне нужно найти IP-адрес телефона, на котором работает мое программное обеспечение. Я бы подумал, что это прямолинейно, но, обыскав форумы, кажется (как ни странно), что в Windows 7 нет метода для этого - однако, это изменилось в Windows Phone 8? любая помощь будет оценена.
Ответы
Ответ 1
Да, теперь это возможно в 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;
}
НТН
Ответ 2
Конечно, есть способ найти IP-адрес телефона. Вот статья блога блога MSDN, в которой объясняется, как это сделать: Поиск собственного IP-адреса в Windows Phone Mango
Я только что протестировал его на своей Nokia Lumia 920 (Windows Phone 8), и все работает отлично. Тем не менее, это просто работает на WiFi из-за использования многоадресного IP.
Ответ 3
Код для 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;
}