当网站使用CDN(内容分发网络)时,获取访问者的真是IP可能会变得困难,因为CDN会在服务器和用户之间插入一层或多层代理,导致服务器只能看到CDN的IP地址。以下是几种常见的获取真实IP的方法:

- 使用
HTTP_CLIENT_IP头:- 有些CDN服务会设置
HTTP_CLIENT_IP头来传递真实的客户端IP。 - 代码中可以通过
$_SERVER['HTTP_CLIENT_IP']来获取这个值。
- 有些CDN服务会设置
- 检查
X-Forwarded-For头:X-Forwarded-For(XFF)头通常由CDN或代理服务器设置,用来表示客户端的原始IP地址。- 代码中可以通过
$_SERVER['HTTP_X_FORWARDED_FOR']来获取这个值。
- 利用
SetEnvIf和RequestHeader指令:- 在Apache的配置文件中,可以使用
SetEnvIf来设置一个环境变量,用于表示客户端的IP地址。 - 同时使用
RequestHeader指令来设置X-Forwarded-For头,这样Discuz!等程序就可以自动获取真实的IP了。
- 在Apache的配置文件中,可以使用
具体代码示例可以参考以下配置:
apache
原创文章,作者:Ur47000,如若转载,请注明出处:https://wyc.retuba.cn/3308.html
