【发布时间】:2020-10-05 08:22:26
【问题描述】:
早安,
我在PHP中使用以下代码获取IP地址:
$IPkey = array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR');
foreach($IPkey as $name){
if(isset($_SERVER[$name])) return $_SERVER[$name];
}
现在有了一个客户,我得到了非常尴尬的结果。
我突然得到以下结果:
- 2001:1c04:3403:9bf0:a8a6:2d21:8006:159, 172.69.55.30
- 2001:1c04:3403:9bf0:a8a6:2d21:8006:159, 162.158.111.183
- 2001:1c04:3403:9bf0:a8a6:2d21:8006:159, 141.101.105.236
- 2001:1c04:3403:9bf0:a8a6:2d21:8006:159, 172.69.55.208
- 2001:1c04:3403:9bf0:a8a6:2d21:8006:159, 172.69.55.209
客户声称他仅在一台 PC 上使用该系统。我当然敢怀疑这种说法。
但我根本无法理解这些 IP 地址。 这就像一个 IPv4 地址附加到一个 IPv6 地址。
我希望有人能告诉我他们的真实 IP 是什么,这是他们粘贴到路由器地址的内部地址吗?以及如何避免这种情况?
编辑:我会再次尝试解释。我使用上面提到的代码来获取IP地址。
现在我得到的结果如下所示。看起来我 意思是:
2001:1c04:3403:9bf0:a8a6:2d21:8006:159 与 172.69.55.30
但我得到一个完整的字符串:2001:1c04:3403:9bf0:a8a6:2d21:8006:159, 172.69.55.30 像这样是 IP 地址。在我看来不太可能。但这仍然是返回给我的内容。
我想知道这是为什么?
【问题讨论】: