怎么做一个网站的被访问记录数据

例如我希望记录每个访问者的IP地址

阅读 4.5k
4 个回答
function getip(){
    static $ip = '';
    $ip = $_SERVER['REMOTE_ADDR'];
    if (isset( $_SERVER['HTTP_CDN_SRC_IP'] )) {
        $ip = $_SERVER['HTTP_CDN_SRC_IP'];
    } elseif (isset( $_SERVER['HTTP_CLIENT_IP'] ) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
        foreach ($matches[0] AS $xip) {
            if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
                $ip = $xip;
                break;
            }
        }
    }
    return $ip;
}

为什么不用第三方呢,百度统计啊之类的,申请入驻,拿到代码,放到你代码中,通过后台就可以看到了

可以在最前端加入一个过滤器,从requset的头部中获取ip,或者进行一些统计的操作,类似node(express)是

const ip = req.headers['x-forwarded-for'] ||
                req.connection.remoteAddress ||
                req.socket.remoteAddress;
 
// 一些统计的代码
...

// 再往下传递
next();

直接在你数据库加个表呗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题