10

Zblog网站cdn加速后如何获取用户真实IP地址

 3 years ago
source link: https://www.huhexian.com/21135.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Zblog网站cdn加速后如何获取用户真实IP地址

2022-01-0411:04:17来源:飞鸟慕鱼博客评论774字

很多站长都会遇到这样的问题,网站使用CDN加速后,统计分析工具提供的用户访问IP地址大多非真地址。这是因为使用CDN后,所有的用户请求都会通过CDN边缘节点访问,如边缘节点没有缓存,就会向客户源站服务器发起请求,故无法依照之前的方式获取最终用户IP地址。如果使用z-blog建站并使用cdn加速的话是如何获取用户的真实IP地址呢?那么今天就交大家一个简单的方法。

z-blog需要获取用户IP地址的地方大概有两处,一个后台建立新用户时需要获取当前管理的IP地址,另一个是访客在前台提前评论时,需要获取访客的IP地址。

打开 zb_system/function/c_system_event.php

找到如果下图两处,分别是提交用户资料时获取用户IP地址以及提交评论时获取IP地址的代码

Zblog网站cdn加速后如何获取用户真实IP地址

提交用户资料获取IP地址

Zblog网站cdn加速后如何获取用户真实IP地址

提交评论获取IP地址

可以比较一下,上面两张图所要获取IP地址方式都是调用的同一个函数 GetGuestIP() ,我们只需要在z-blog中改动这个函数的代码就可以获取z-blog在cdn加速的情况下用户真实的IP地址了。

打开 zb_system/function/c_system_common.php  要用代码编辑器打开,推荐 notepad++

查找代码:

  1. function GetGuestIP()
  2. return GetVars("REMOTE_ADDR", "SERVER");
  1. function GetGuestIP()
  2. if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
  3. $arr = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  4. return $arr[0];
  5. }else{
  6. return $_SERVER['REMOTE_ADDR'];

替换后的代码,如下图所示

Zblog网站cdn加速后如何获取用户真实IP地址


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK