2016-04-26 124 views
1

我正在尋找一個解決方案,以獲得通用的Windows外部IP地址10.我已經找到了如何讓本地地址:獲取外部IP地址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

如果你這麼說... –