【发布时间】:2015-05-27 00:39:48
【问题描述】:
我在 Google 上搜索了如何使用 JavaScript 检测 IP 地址,所有来源都告诉我这是不可能的。 但谷歌分析是 JavaScript sn-p。 那么,它究竟是如何做到的呢?
【问题讨论】:
标签: javascript google-analytics ip-address
我在 Google 上搜索了如何使用 JavaScript 检测 IP 地址,所有来源都告诉我这是不可能的。 但谷歌分析是 JavaScript sn-p。 那么,它究竟是如何做到的呢?
【问题讨论】:
标签: javascript google-analytics ip-address
这是可能的,因为 Google Analytics JS sn-p 向 Google 的服务器发出请求,而 Google 可以检查该请求并尝试确定 IP 地址。所以检测仍然发生在服务器上(与运行 JS 的客户端相反)。
【讨论】:
他们的 JS 导致浏览器向他们的服务器发出(几个)HTTP 请求。 HTTP 请求通过 TCP/IP 传输。这包括 IP 地址。发现 IP 地址的是他们的服务器端代码,而不是 JavaScript。
【讨论】:
Javascript 本身无法获取 IP 地址,但如果对您有效,对该地址的 ajax 调用可以返回您的 IP 地址。
$.ajax({
url: "http://freegeoip.net/json/",
}).done(function(data) {
alert(data.ip);
});
【讨论】: