2016-04-26 197 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

如果你这么说... –