前两天Airs_Lau同学说来一篇关于评论UA的文章,本来一开始就打算咕咕咕的٩(ˊᗜˋ*)و,还不是因为我技术菜人又懒(
我不要面子的嘛)。
刚好今天闲下来,就把自己魔改的UserAgent插件打包了下,代码水平有限,望多多指正。
食用指南
- 操作前请做好相应备份工作
- 此插件只适用于
Handsome
主题,未对其它主题优化!!! - 请先将插件置于
Typecho
的plugins
目录下,且插件目录名应为UserAgent
,注意大小写,否则将无法正常食用!!! - 修改
Handsome
主题,component
目录下的comments.php
代码文件Handsome:
版本大概第9.2.1
82
行左右,
<span class="comment-author vcard"> <b class="fn"><?php echo $author; ?></b>
添加代码<?php UserAgent_Plugin::get_useragent($comments->agent,$comments->ip); ?>
,修改后代码如下:
<span class="comment-author vcard"> <b class="fn"><?php echo $author; ?></b><?php UserAgent_Plugin::get_useragent($comments->agent,$comments->ip); ?>
获取真实IP
Typecho开启CDN后,可能无法获取访客真实IP,只能取得CDN节点IP,为此可以在Typecho博客网站的根目录的config.inc.php
插入下面的代码:
//** 防止CDN造成无法获取客户真实IP地址 */ if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); $_SERVER['REMOTE_ADDR'] = $list[0]; }
更新日志
2023-11-05
说不准新增了部分BUG😂呢,记得反馈哦!- 修复 "启用 Windows 11 检测" 无法选中
- 更新
纯真数据库
至2023年10月25日IP数据 - 已测试
Handsome 9.2.1
可以放心食用
2023-4-15
- 新增 Windows 11 系统识别(检测方式貌似很鸡肋,不支持非 HTTPS 站点)
- 已测试
Handsome 9.0.2
可以放心食用
2023-4-12
- 新增 内置离线IP库
ipv6wry
,支持IPV6 - 修复
Mac OS X
解析错误(感谢 吴蛋蛋) - 优化 UA信息悬停效果
- 已测试
Handsome 9.0.2
可以放心食用
2023-2-28
- 新增 内置离线IP库
纯真数据库
,仅支持IPV4 - 新增 第三方API
vore.top、mir6.com
,稳定性未知 - 新增 第三方API功能可禁用
- 修复
IPV6
查询时报错 - 已测试
Handsome 9.0.2
可以放心食用
2023-2-26
- 更新部分浏览器
- 更新
Instant.page
到5.1.1
版本 - 新增
IPinfo.io
API,有请求速率限制 - 优化 UA信息悬停效果
2020-3-5
- 移除不稳定的淘宝API(IP)
- 离线IP库查询位置信息去重,之前会出现
中国 天津 天津
(感谢 任宝硕 建议) - 更新离线IP库为
ipipfree.ipdb
,理论上兼容IPIP官方 全球 IPv4 地级市精度离线库(China:免费版,每周高级版,每日标准版,每日高级版,每日专业版,每日旗舰版)[然而,我也只用得起免费版,所以就不支持IPV6咯]此次更新离线IP库,部分文件来源GITHUB,为方便安装使用插件,已使用
composer
生成且引入autoload.php
文件。
(其实关于composer
,你也可以直接在Typecho根目录生成并引入,只是为了方便萌新们使用,才移入到UserAgent插件目录下。) - 此次更新仅是维护,也不是很建议非要更新,稳定使用才是最好的。
2020-1-18
- 更新
Instant.page
到3.0.0
版本 - 更新 微软
EDGE
移动端浏览器 - 已测试
Handsome 6.0.0
可以放心食用,有 CSS 样式错误的,请先确认是否全新主题安装此插件,且无魔改痕迹。我看过很多人反馈的,都是之前用过别人的插件,样式修改后遗留的 CSS 代码冲突,切记!
我也在这里提前祝大家新年快乐、心想事成、万事如意、身体健康、财源广进、金玉满堂……
Tips:切记先禁用
插件后操作,更新完毕请刷新浏览器缓存
文件下载
## Hash校验 Ver: 1.1.7 MD5: c829f4c14275ccfb778654ccdc86a793 SHA1: 6162fe052b87b21f2cf54bd1ec0cf73a1c25a3bc CRC32: E9606864
效果预览



在吗?
emm…… 可不可以添加一个仅IP地址无浏览器ua的选项呢(๑❛ᴗ❛๑)
@康露依 可以直接修改插件代码呀,注释掉显示UA部分就行的
请问获取到ipv6地址然后解析不出来怎么搞
@小垃圾 插件使用的免费ip库,不包含ipv6地址库。或者使用ipip付费数据库
@小垃圾 插件已更新啦,已修复IPV6解析问题。咕~咕~咕
win11检测成win10了
@小鬼宝 嗯,因为
win11
的useragent
关键字还是和win10
一样,都是(Windows NT 10.0; Win64; x64)
;只有通过
sec-ch-ua-platform-version
才能区分win11
与win10
。@松鼠大大 有办法解决吗
@小鬼宝 可以解决,
typecho
的getAgent()
函数只读取$_SERVER['HTTP_USER_AGENT']
。可自行写代码获取系统型号,并将其存入数据库。后期调用即可。
大佬,不知道此款插件还会更新吗,handsome 版本: 9.0.2的情况下,插入
agent,$comments->ip); ?>
后文章页面会变成2栏的模式
我看别人老版本文章页面是正常显示3栏模式,大佬如果有空看可以抽空修复下吗
@祝哥哥 很抱歉啦,近期可能没有时间维护插件,或许以后有空闲时间会继续更新。
@松鼠大大 好的呢,大佬有空的话等大佬修复😄
@祝哥哥 我在
handsome
版本:9.0.2
上,测试 UserAgent 插件1.1.1
没有出现问题,是插入的代码放错位置了嘛?有详细的错误日志吗?@松鼠大大 感谢大佬测试,在100行位置加入
?>agent,$comments->ip); ?>
这个位置插入的
文章页面评论附近会出现一个 u工div>的代码
不知道大佬这段代码是插入在了哪个位置
@祝哥哥 插入在101行试试呢?
@松鼠大大 刚试了下放在101行后面还是出现这个情况,不知道是不是因为我之前改了下页面布局的宽度
@祝哥哥 试着把
handsome
主题文件夹重命名,然后上传全新的9.0.2版本试试看呢?@松鼠大大 感谢大佬帮分析,刚试了重新上传启动主题插入代码还是会有这个情况,发现一个问题,就是加了那个段代码后,本地ip访问显示是正常的,新的和之前的主题都是这个显示问题,用外网域名访问就出现,出现 u工div>的代码,我用本地ip访问就显示没有问题,不知道大佬知道这个是什么原因吗
@祝哥哥 排查下外网访问的链路上是否有程序修改或者重写了网页呢?
@祝哥哥 看了下你的网站源码。
<div class="random_user_name shake-constant">ߎ⼯div>
,此处应该是</div>
<div class="random_user_name shake-constant">🎲</div>
,应该是你的源码有点点问题,无法显示emoji
@松鼠大大 我也感觉很迷,就是本地ip访问文章页面是正常显示的,我刚刚下载用新的主题插入代码也是反代后就会这样,本地一点问题都没有😄,像这样的问下大佬一般怎么解决比较好呢,是主题的问题吗
@祝哥哥 我上一条评论更新了,你可以看看,应该是
emoji
字符的问题@祝哥哥 这个骰子🎲是随机用户名的,应该是修改源码,
emoji
保存时出错了@松鼠大大 多谢大佬找到原因,确实是变成了这个无法显示emoji,大佬这种问题请问有什么办法可以解决吗
@松鼠大大 感谢大佬解决,我换了一个中文现在正常了。
@祝哥哥 好的
一直在用,真的是香啊,期待大佬的更新,php8目前不太兼容了
@韩涛博客 您好,我在宝塔
php8.2
上使用1.1.1
版本暂时木有发现报错。有详细的错误信息吗?我这边需要它来帮助排除故障反馈一个问题,系统版本识别上,电脑是MacOS Ventura 13.2.1,实际显示为Mac OS X Lion 10.15.7,这个要怎么更新?
@吴蛋蛋 是否可以提供下浏览器UA信息呢?
https://tool.chinaz.com/useragent/
浏览器访问后可以获取当前UA信息@松鼠大大 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.34
@吴蛋蛋 识别Lion的BUG是代码写错了。具体 Mac OS 系统版本号,暂时无法识别,暂时只支持
Mac OS X 10_15_7
解析为Mac OS X 10.15.7
;插件已更新啦,说不准还有其它未知BUG😂
@松鼠大大 感谢大大,确实修复了其中的一个问题:Mac OS 的版本10.15.7对应的名称应该是Catalina,之前识别成Lion。
但是还有一个问题不知道是否可以优化:我的系统版本是13.2.1,根据chinaz的UA信息,识别成了10.15.7,您的插件识别也是10.15.7,都跟我实际的系统版本不一致。
@吴蛋蛋 嗯,这个问题目前还无法解决,UA信息就这些内容,我看后期能否找找版本对应关系,不然也无法判断系统代号
@松鼠大大 另外还有一个问题,无法识别Windows 11,都是识别成Windows 10
@吴蛋蛋 这个问题也有人反馈过,目前
win10
与win11
UA信息暂时没有区别。仅能通过sec-ch-ua-platform-version
区分,而且仅在支持https
的网站下有效。看后期能否用开源的UAParser.js
做个解析@吴蛋蛋 已支持
win11
系统识别,不过这个功能不支持非HTTPS
站点。目前没有比较合适的检测方法,暂时用用吧。@松鼠大大 能识别Windows 11 已经很棒了,感谢大大,文章中的版本号要更新为1.1.6了~!
大佬,我的手机苹果13pm 16.4.1版本评论那个ua颜色不会变怎么办https://www.xiaoguibao.cn/archives/79.html
@小鬼宝 我这边打不开您的站点😂
@小鬼宝 目前,随机颜色值,有相同
useragent
信息的用户,颜色是一样的,如果您这边有合适的建议或者想法,可以提出来哦,我后期看看如何修改优化。大佬,这个9.0.2的插入代码地址是不是有点错误啊,为什么我在82行插入以后我的评论就没有正常显示了
博主,插件在手机上显示正常,但在PC上显示是这样的 https://bit.ly/3WpZrkY,请问这正常吗?
@气魄的男人 可能是你自定义的CSS样式与UA的样式冲突了,检查下您魔改的代码和内容呢?
有个问题,handsome主题中,启用插件后,会导致我的搜索框左边多个错误符号,感觉css冲突了,但我源码基本没有魔改什么,这是什么原因呢
@Southerly 代码添加的位置是否正确呢?有具体的错误截图吗?有检查过css冲突嘛?
代码添加位置没问题,可以正常使用,具体截图等我晚上回去复现,css冲突有可能,但不知道如何检查,另外就是主题未进行任何美化,以及魔改,开启插件就会有冲突,如果方便可以加我一下qq沟通,2277680934
@Southerly handsome 9.2.1 版本应该是添加在
。
/usr/themes/handsome/component/comments.php:101
处,示例如下:现在不是添加不添加代码的问题,是只要一启用插件就有冲突,部分css样式,我无论添不添加那句显示代码