识别代理背后用户的地理位置

Posted

技术标签:

【中文标题】识别代理背后用户的地理位置【英文标题】:Identifying Geolocation of user behind proxy 【发布时间】:2013-06-02 11:28:41 【问题描述】:

我正在编写一个需要用户当前地理位置的 Web 应用程序。为了识别地理位置,我使用了以下使用 html5 地理位置 api 的代码。我已从 W3schools 获取此代码。

<!DOCTYPE html>
<html>
<body>
<p id="demo">Click the button to get your coordinates:</p>
<button onclick="getLocation()">Try It</button>
<script>
   var x=document.getElementById("demo");
   function getLocation()
    
      if (navigator.geolocation)
         
           navigator.geolocation.getCurrentPosition(showPosition);
         
     elsex.innerHTML="Geolocation is not supported by this browser.";
    
   function showPosition(position)
    
        x.innerHTML="Latitude: " + position.coords.latitude + 
   "<br>Longitude: " + position.coords.longitude;   
    
</script>
</body>
</html>

我已经用 Tomcat 运行了这段代码,但它不工作 在 Firefox 和 Chrome 中都没有。然后我在 W3Schools 中使用“Try It Yourself”尝试了这段代码,即使在 Firefox 和 Chrome 中也无法正常工作。我在代理后面。

我在函数 showPosition() 的开头引入了一个 alert() 语句,但它没有被调用。所以看起来这个函数根本没有被调用。我不知道如何解决这个问题。我迫切需要解决这个问题。我之前已经发布过这个问题,但可能因为没有清楚地描述问题而没有得到回应。所以我再次发布问题。

有没有其他方法可以获取通过计算机访问此应用程序的用户的地理位置。所以请帮忙。谢谢你。

编辑:我在 Tomcat 上托管了这个文件。每次我执行时,它都会给出错误代码 3,即超时。但是两个月前我已经执行了相同的 javascript。然后它完美地执行了。是不是我当前版本的浏览器有问题?

【问题讨论】:

【参考方案1】:

代理与 html5 地理定位 api 无关,如果您的机器上有一个 gps 设备,它会根据您的 gps 设备检测位置,其次它会使用 wifi 设备,最后它使用互联网 ip 检测您的位置,如果您使用代理连接,它将显示您的代理的位置。 您的问题可能是因为您没有在浏览器上授予 localhost 的权限,请再次检查并重试您的代码。

【讨论】:

对不起,先生,我不知道如何在我的浏览器上授予本地主机权限。你能澄清一下吗? 您可以在 chrome 中打开设置,然后搜索内容设置,然后向下滚动到位置选项。 是的,先生,我已经检查过了,但在内容设置中我没有发现与 localhost 相关的东西。 @Joy 你能打开你的控制台并检查你是否有任何错误抛出吗? 实际上,先生,控制台中没有打印任何内容。似乎函数 showPosition 没有被调用。我不知道发生了什么。我在“navigator.geolocation.getCurrentPosition(showPosition);”行之前引入了另一个 alert() 语句。这似乎是执行的最后一条语句。

以上是关于识别代理背后用户的地理位置的主要内容,如果未能解决你的问题,请参考以下文章

Neura 会自动识别家庭、办公室等位置,还是用户必须手动输入它们?

如何使用 Apache 在代理设置中重写位置响应标头?

缓存---缓存位置

使用融合位置提供程序获取用户当前位置

检测移动应用用户是不是在代理后面

活动识别和位置客户端 Android