2016-04-26 1 views
1

Я искал решение, чтобы получить внешний IP-адрес на универсальной ОС Windows 10. Я уже нашел, как получить локальный адрес:Получить IP-адрес внешнего по универсальному Windows, 10

public static string getLocalIpAdress() 
{ 
    foreach (HostName localHostName in NetworkInformation.GetHostNames()) 
    { 
     if (localHostName.IPInformation != null) 
     { 
      if (localHostName.Type == HostNameType.Ipv4) 
      { 
       return localHostName.ToString(); 
      } 
     } 
    } 
    return "unknown adress"; 
} 
+0

Имейте в виду, что внешний адрес вполне может быть маршрутизатором, и скрывать множество устройств (как весь офис или домашнее хозяйство) - в результате в то время как вы можете получить его, это не будет, что полезно для маршрутизации трафика –

+0

Также имейте в виду, что в некоторых ситуациях у вас могут быть разные IP-адреса на основе протокола (например, если прокси-сервер HTTP перехватывает ваш трафик) или адресата (например, если вы находитесь в глобальной сети, точки с более широким Интернетом) –

ответ

4

Единственное надежное решение заключается в используйте свой веб-интерфейс WebApi для обнаружения IP-адреса пользователя. Или вы можете использовать любой открытый API. Например https://api.ipify.org/

var myIp = await new HttpClient().GetStringAsync("https://api.ipify.org/"); 
+0

Фактически это единственное решение - нет надежного способа запросить внешний IP-адрес изнутри. – TomTom

+1

если вы так говорите ... –

Смежные вопросы