请注意,本文编写于 168 天前,最后修改于 85 天前,其中某些信息可能已经过时。
写在开始
本插件持续开发中,目前版本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)感谢大家提出的意见与建议,最近忙于学业,会抓紧时间修改与实现。
135 条评论
感谢大佬分享
插件XQLocation的配置信息没有找到
访客图显示不出来柱状图和饼图这些。
感谢大神分享
看起来不错,试试。
看起来不错,试试。
打卡打卡
好,回复可见
不需要单独建表保存蜘蛛
是的,加一个字段就行了
感谢感谢,我也看看