【问题标题】:Php $_SERVER['REMOTE_ADDR'] gives different ip everytime [duplicate]Php $_SERVER['REMOTE_ADDR'] 每次都给出不同的 ip [重复]
【发布时间】:2018-08-03 13:35:25
【问题描述】:

我正在使用 Php superglobal $_SERVER['REMOTE_ADDR'] 来获取客户端 ip。但它总是给我不同的 ip 地址,而且$_SERVER['REMOTE_ADDR'] 提供的 ip 不正确我在本地机器上的 ip 以 192.168 开头。 ...等等,但它给了我像 165.123 这样的 ip。 ...当我用不同的浏览器打开页面时,它会产生不同的结果。

【问题讨论】:

  • 可能是它正在存储的外部IP地址
  • 外部ip地址是什么意思
  • 你看到的IP,是你公司防火墙的IP。
  • @Shanukk 我没有使用任何代理,但我每次都得到错误的 ip 和不同的 ip。

标签: php ip


【解决方案1】:

您本地计算机上的 IP 是您的路由器分配的私有 IP。远程服务器获取路由器 WAN 接口的公共 IP。如果 IP 发生变化,您的 ISP 必须在每次连接时动态分配您的 IP。

另一种可能性是您的 ISP 通过代理服务器中继您的网络流量。那么$_SERVER['REMOTE_ADDR']就是代理的IP。如果 IP 每次都更改,则它们有多个负载均衡的代理。

【讨论】:

  • 没有任何方法可以始终如一地获得相同的 ip 吗?我查看了 ipify.org 的 api,当我使用他们的 api 时,它给出了一致的 ip
  • 看ISP是否每次都给你一个一致的IP。我不确定 ipify.org 有什么不同,也许有一些缓存。
  • 我正在尝试通过存储用户的 IP 地址来修复会话劫持。但是每次我运行这个 $_SERVER['REMOTE_ADDR'] 它都会给我不同的 IP,所以我的修复总是失败。那么如何管理获取调用 URL 的远程机器的正确地址呢?
  • @MadhavaraoKulkarni 你不能用IP地址来做,不应该尝试。
猜你喜欢
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
相关资源
最近更新 更多