目前我正在使用这个脚本来记录我的用户 IP 地址:
$userip = $_SERVER['REMOTE_ADDR'];
但是,在我购买 Anti-DDoS HTTP 代理后,它会返回代理 IP。
$_SERVER['REMOTE_ADDR'] -> 198.12.12.102
我将 Cloudflare 与代理一起使用,因此我在 Cloudflare 的 IP 字段中输入了代理的 IP,然后选择了“绕过 Cloudflare 网络”。
目前我正在使用这个脚本来记录我的用户 IP 地址:
$userip = $_SERVER['REMOTE_ADDR'];
但是,在我购买 Anti-DDoS HTTP 代理后,它会返回代理 IP。
$_SERVER['REMOTE_ADDR'] -> 198.12.12.102
我将 Cloudflare 与代理一起使用,因此我在 Cloudflare 的 IP 字段中输入了代理的 IP,然后选择了“绕过 Cloudflare 网络”。
反向代理可以将原始用户的 IP 存储在 HTTP 标头中。转储请求标头以查看是否是这种情况。如果没有这样的标题,您将无能为力。
REMOTE_ADDR 是与服务器建立实际套接字连接的系统地址。如果涉及代理,您应该期望看到代理 IP。
嗯,是的,如果请求被代理,PHP 看到的只是代理的地址。在这种情况下,并且只有在这种情况下,您是否应该查看其他 HTTP 标头。代理可以,应该,将原始 IP 地址添加为额外的 HTTP 标头,例如X-Forwarded-For
,将在$_SERVER['HTTP_X_FORWARDED_FOR']
.
通常注意这些标头会带来安全风险;仅当您知道您控制的代理代表您显式添加此标头时,您才应该使用它。