php - REMOTE_ADDR 返回 2 个 IPv4 而不是一个

标签 php ipv6

我正在将 IP 存储到一个以前在 char(15) 下工作的数据库,最近我得到越来越多的 IP,如下所示:

'172.29.93.25, 94.56.207.248'

不过,大多数条目看起来还不错。这不到所有案例的 1%。

我正在使用的命令:

$ip = $_SERVER['REMOTE_ADDR'] 

上面的 IP 对我来说不像 IPv6,而更像是两个用逗号分隔的 IPv4。这怎么可能?

最佳答案

第一个 IPv4 地址可能是负载均衡器的内部 IP 地址。第二个 IPv4 地址可能是客户端的 IP 地址,并且可能被负载均衡器包含在 X-Forwarded-For http header 中。 .

更新:

我看到您已经编辑了问题,并将一个带有 10.x.x.x IP 地址的示例替换为一个具有 172.x.x.x IP 地址的新示例。在这种新情况下,第一个 IP 可能是代理服务器。通常,您可以在此字段中使用逗号分隔的 IP 地址列表,该列表可以任意长,它代表请求经过的所有代理和负载平衡器。最后一个 IP 地址是原始客户端的 IP。

关于php - REMOTE_ADDR 返回 2 个 IPv4 而不是一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34639205/

相关文章:

php - 如何获取 curl exec 响应

php - 如何使用ID从关联表中获取值?

php - 对象上下文中的 Array_filter,带有私有(private)回调

ipv6 - 重定向 ip6tables 中的端口

java - 当 java.net.preferIPv4Stack=true 时,无法对 IPv6 使用 InetAddress.isReachable(timeout)

php - Symfony2 - 使用第三方库 (SSRS)

php - 将 Wordpress 站点移至本地服务器,现在仅显示页眉和页脚

sockets - 在多种设备类型上在防火墙和 NAT 后面进行 p2p 传输的方法

asp.net - IE 和 ASP.NET 的 IPv6 范围 ID 问题

linux - 无法在我的 ubuntu 中禁用我的 Ipv6