我的ASP.NET网站需要知道访问用户的城市和国家/地区。我试过以下代码:
string ip = HttpContext.Current.Request.UserHostAddress.ToString();
然后向http://api.hostip.info/get_html.php?ip=ip
在某些情况下,此方法会返回正确的用户位置,但是当用户的ISP在其他国家/地区或城市托管服务器时,则不会向我提供用户当前的城市(从他浏览网站的位置),而是向我提供托管的服务器位置。
无论ISP托管服务器的位置如何,我如何获取用户的位置?就像Google在Google地图中所做的那样(浏览器要求获得共享位置的权限)。还是其他更好的方式?