三种PHP获取用户IP的方法的差别

首先,PHP中有三种获取用户IP的方法。虽然这三种都是用$_SERVER来获取,但是他们三个的含义不一样。

有时候,我们站点使用了CDN,会发现评论用户的IP好多一样,第一感觉是被人刷评论了。但是仔细一看,内容毫无广告痕迹。这时候,就应该是获取IP的姿势问题了。

下面宇润简单介绍一下PHP中三种获取用户IP的方法的不同之处。

$_SERVER['REMOTE_ADDR']

客户端IP,真实的不可伪造的,和服务器直连的客户端IP。

如果用户使用代理IP,则是代理IP。

如果站点开启了CDN或反向代理,则是CDN节点IP。

$_SERVER['HTTP_CLIENT_IP']

代理IP通过header头发送给服务器的用户IP,可伪造。

如果用户使用匿名代理IP,则获取不到值,反之则有值。

$_SERVER['HTTP_X_FORWARDED_FOR']

如果站点开启了CDN或反向代理,则是用户的真实IP。其实也是可伪造的,但一般可以信任。

  • 标签
  • 发表评论
当前用户:
  • 评论列表
  • 2 2018-12-24 16:57:22

    优秀

  • 风之舞 2017-04-02 22:15:04

    很不幸的告诉你,三个都可以伪造的。

    • 宇润 2017-04-03 09:15:11

      $_SERVER['REMOTE_ADDR'] 这是和服务器直接连接的IP地址,不可以伪造的