使用JavaScript获取IP地址是否与通过PHP获取IP地址一样准确?

使用JavaScript获取IP地址是否与通过PHP获取IP地址一样准确?,javascript,php,http,Javascript,Php,Http,我只是想知道,使用JavaScript获得的IP是否和使用JavaScript一样准确 $_SERVER['REMOTE_ADDR']; 用PHP还是其他服务器端语言?每种方法提取信息的方式有什么不同 对于一些背景信息,我知道Google Analytics是JS代码,我可以在我的GA仪表板中过滤出IP,我想知道这是如何做到的,它是否可靠 你不能用JavaScript真正获得IP。您列出的页面上的所有示例都是从服务器或API获取的。除了使用现有的API之外,PHP是最好的选择。无论如何,它都不

我只是想知道,使用JavaScript获得的IP是否和使用JavaScript一样准确

$_SERVER['REMOTE_ADDR'];
用PHP还是其他服务器端语言?每种方法提取信息的方式有什么不同


对于一些背景信息,我知道Google Analytics是JS代码,我可以在我的GA仪表板中过滤出IP,我想知道这是如何做到的,它是否可靠

你不能用JavaScript真正获得IP。您列出的页面上的所有示例都是从服务器或API获取的。除了使用现有的API之外,PHP是最好的选择。无论如何,它都不会非常可靠,也很容易被伪造。

不。关键信息不能信任JavaScript

使用PHP获取IP地址的最佳方法是:

$_SERVER['REMOTE_ADDR'];
使用“REMOTE_ADDR”返回客户端的实际物理IP地址


根据您的应用程序需求,有时获取位于代理之后的客户端ip会有所帮助。您可以使用以下变量:

$_SERVER['HTTP_X_FORWARDED_FOR'];
但需要注意的是,“HTTP_X_FORWARDED_FOR”很容易被欺骗


Google Analytical使用JavaScript获取客户端PC的详细信息,如:

  • 屏幕大小和分辨率
  • 是移动设备吗
  • Java和Flash版本
  • 语言(浏览器)
  • 用户代理
  • 操作系统

  • 重要的是要记住,所有这些信息都可能被欺骗。但是,如果真正的访问者正在访问您的网站,则此信息不太可能返回错误信息。

    您感兴趣的IP地址是什么,在什么上下文中(浏览器或Node.js或其他内容)?@指向向页面发出请求的IP,客户端浏览器本身的IP?仅使用JavaScript,你将无法获得正确的IP。大多数人都坐在路由器后面,所以即使有办法获取NIC的IP,您仍然只能获取内部IP(如:192.168.1.xxx或类似)。NIC不知道或不关心外部IP。那么Google Analytics做什么呢?@SubparWebDev它向Google发出HTTP请求,每个请求在服务器上都有一个可见的IP地址。然后,服务器代码可以将该消息返回到client.GA中的JavaScript,而不是通过JavaScript获取IP。它正在从谷歌服务器加载文件。然后,他们可以查看请求ip并设置cookies。或者,如果服务器位于代理之后并且正在设置此标头,则可以使用
    $\u服务器['HTTP\u X\u FORWARDED\u']
    。是的,但是,重要的是要记住,它可以被欺骗,因为它是HTTP标头。这是真的。这也适用于
    REMOTE\u ADDR
    。IP欺骗,叫做;-)对但是,要欺骗远程地址,您必须在网络级别对其进行更改,这需要您拥有重要的资源,例如:访问网络设备。HTTP_X_FORWARDED_FOR是任何人都可以更改的实际HTTP头。是。欺骗远程地址要困难得多。但是,如果您需要客户端IP,您也应该始终检查HTTP_X_FORWARDED_(如果您的代码可能最终位于代理之后),否则看起来所有调用都来自一个(代理)IP。理论上是这样的。我曾经以艰难的方式学会了这一点。:)