-2

目前我正在使用这个脚本来记录我的用户 IP 地址:

    $userip = $_SERVER['REMOTE_ADDR'];

但是,在我购买 Anti-DDoS HTTP 代理后,它会返回代理 IP。

    $_SERVER['REMOTE_ADDR'] -> 198.12.12.102

我将 Cloudflare 与代理一起使用,因此我在 Cloudflare 的 IP 字段中输入了代理的 IP,然后选择了“绕过 Cloudflare 网络”。

4

2 回答 2

0

反向代理可以将原始用户的 IP 存储在 HTTP 标头中。转储请求标头以查看是否是这种情况。如果没有这样的标题,您将无能为力。

REMOTE_ADDR 是与服务器建立实际套接字连接的系统地址。如果涉及代理,您应该期望看到代理 IP。

于 2013-07-01T05:50:16.170 回答
0

嗯,是的,如果请求被代理,PHP 看到的只是代理的地址。在这种情况下,并且只有在这种情况下,您是否应该查看其他 HTTP 标头。代理可以,应该,将原始 IP 地址添加为额外的 HTTP 标头,例如X-Forwarded-For,将在$_SERVER['HTTP_X_FORWARDED_FOR'].

通常注意这些标头会带来安全风险;仅当您知道控制的代理代表显式添加此标头时,才应该使用它。

于 2013-07-01T05:51:18.480 回答