获取真实的访问者IP,更好地信任real_ip或forwared_for?

时间:2012-09-21 09:48:10

标签: php nginx

我想要确定访问者的真实IP地址。

该脚本包括X_REAL_IP和X_FORWARDED_FOR。我只是想知道我应该先检查哪一个以获得最佳结果?

有什么想法吗?

[edit]我会更具体。

Nginx如何以及何时可以同时设置w_real_ip和x_forwarded_for?两者都设置后我应该读哪一个?它取决于服务器配置吗?

2 个答案:

答案 0 :(得分:1)

你需要检查它们 REMOTE_ADDR - 真实或代理IP
X_REAL_IPX_FORWARDED_FOR - 代理标头。并非所有代理都设置它们。

答案 1 :(得分:0)

X-Forwared-For是代理服务器通常添加客户端地址的标头:“192.168.1.1,10.10.10.1,10.10.1.1”。 变量$ proxy_add_x_forwarded_for执行此添加。 X-Real-IP是非标准头,其中nginx设置客户端地址。