请注意,本文编写于 193 天前,最后修改于 110 天前,其中某些信息可能已经过时。
写在开始
本插件持续开发中,目前版本V1.2.5,插件在Github开源,开发不易,帮忙在Github点个Star呗,顺便在博客点个赞吧~
最近突发奇想,想看看哪些地区的同志更喜欢访问我的博客,同时也想看看博客的哪些内容最值得大家关注。基于上述的想法,也找过一些Typecho插件,最经典的当属Access了,但是Access年久失修,听说性能也不咋好,捣鼓了半天心想不如自己开发一套访问日志插件,由此便着手写了自己的VisitorLogger插件(本人第一次接触php,平时都是Vue+Spring,插件写的可能比较烂,有问题请批评指正)。
VisitorLogger
VisitorLogger首先能够记录每一个访客的IP、访问路由、以及访问时间,同时会自动查询访客所在的地理位置;其次VisitorLogger能够快速统计自定义时间段内的访问情况,包括各个国家的访问统计,各个省份的访问统计以及各个路由的访问情况,更多的功能持续开发中。VisitorLogger为了避免卡顿或者获取失败,查询访客地理位置时依赖于本地集成数据库,不调用任何第三方API接口。同时提供了灵活的自定义时间段统计功能,轻松查看历史访问记录。
使用VisitorLogger的前提条件:
- 你得是基于Typecho的博客
- Typecho版本 >= 1.2.1 (低版本未测试)
- PHP版本 >= 7.2
- MySQL 5.x(8.0版本需要修改代码,后面会讲)
开发不易,动动你的小手点个赞,点个star!插件本地下载地址:
Github:
此处内容需要评论回复后(审核通过)方可阅读。
本站下载:
此处内容需要评论回复后(审核通过)方可阅读。
插件使用方法:
- 下载后将压缩包解压到 /usr/plugins 目录
- 文件夹名改为VisitorLogger
- 登录管理后台,激活插件即可食用
更新记录
版本号 | 更新时间 | 更新说明 |
---|---|---|
V1.1.2 | 2024-08-10 |
|
V1.2.0 | 2024-08-11 |
|
V1.2.1 | 2024-09-05 |
|
V1.2.2 | 2024-09-23 |
|
V1.2.3 | 2024-09-28 |
|
V1.2.4 | 2024-09-29 |
|
V1.2.5 | 2024-10-03 |
|
下个版本 | 待定 |
|
* 上线Github前的版本不记录在内 |
常见问题
1. 激活插件时提示插件XQLocation的配置信息没有找到
已修复,请更新至最新版本
2. 支不支持IPV6
已支持,请更新至最新版本
3. 激活插件时提示数据库创建失败
激活插件时提示以下信息,这是由于MySQL版本不兼容导致:
SQLSTATE[HY000]: General error: 1 near "UNSIGNED": syntax error
SQLSTATE[HY000]: General error: 1 near "AUTO_INCREMENT": syntax error
SQLSTATE[HY000]: General error: 1 near "ENGINE": syntax error
您可以切换至MySQL 5.x版本,或者将:
$sql = "CREATE TABLE IF NOT EXISTS `{$prefix}visitor_log` (
`id` INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`ip` VARCHAR(45) NOT NULL,
`route` VARCHAR(255) NOT NULL,
`country` VARCHAR(100),
`region` VARCHAR(100),
`city` VARCHAR(100),
`time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
替换为:
$sql = "CREATE TABLE IF NOT EXISTS `{$prefix}visitor_log` (
`id` INT(10) PRIMARY KEY,
`ip` VARCHAR(45) NOT NULL,
`route` VARCHAR(255) NOT NULL,
`country` VARCHAR(100),
`region` VARCHAR(100),
`city` VARCHAR(100),
`time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);";
4. 排除了蜘蛛IP吗?
已支持,请更新至最新版本
5. 使用CDN后不显示真实IP怎么办
请在工程的根目录下的config.inc.php文件的末尾添加以下代码:
/** 使用CDN后获取访客真实ip **/
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
6. 可以根据地址模糊查记录吗?
未支持,预计下一个版本实现
写在最后
本插件不定时更新,欢迎在评论区留言,对我提出意见与建议!
(2024-09-28)最近看了一些评论,都是建设性意见的,非常感谢,有问题的话积极提出来,我会修复,感激。
(2024-11-01)感谢大家提出的意见与建议,最近忙于学业,会抓紧时间修改与实现。
138 条评论
反馈以下,测试了以下,如果开通cdn后,获得的都是cdn加速的ip ,并非真实访问者的Ip信息,我的网站就是,本人在成都,测试出来的ip不是陕西就是湖南,很明显是cdn节点Ip,希望能解决
评论代码被解析成markdown了,可以看问题列表的第5点
你好,可以在工程的根目录下的config.inc.php文件的末尾添加以下代码:
/ 使用CDN后获取访客真实ip /
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
想看看蜘蛛的访问情况,看来正好合适
想看看最近蜘蛛的浏览情况,谢谢
感谢大神无私奉献,辛苦了
不客气,有什么问题可以留言呐
刚好需要这样一个插件
我之前也遇到过类似的问题:
https://xcshare.site/other/1188.html
看看能否给予你参考,虽然我也不懂其原理
你好大佬,我安装了你的插件。但是在"访客日志"页面的最上方有一行报错:
[Warning: Constant TYPECHO_ADMIN already defined in /www/wwwroot/mnbt.3752577e/admin/common.php on line 6]
访问IP可以正常记录,访问地点也能正常解析。但是在"访问统计"中三个图表无法正常显示,请问是哪里的问题?是插件冲突吗?
抱歉最近很忙回复晚了,可以试试:
在 admin/common.php 的第6行附近修改代码如下:
define('TYPECHO_ADMIN', true);if (!defined('TYPECHO_ADMIN')) {
}
再给我反馈!
确实可以,谢谢
看着很不错 刚好需要一个,谢谢博主
不客气,有啥问题可以在这里留言呐
看起来不错,试试。
OωO看一看
OωO看一看