前两天Airs_Lau同学说来一篇关于评论UA的文章,本来一开始就打算咕咕咕的٩(ˊᗜˋ*)و,还不是因为我技术菜人又懒(
我不要面子的嘛)。
刚好今天闲下来,就把自己魔改的UserAgent插件打包了下,代码水平有限,望多多指正。
食用指南
- 操作前请做好相应备份工作
- 此插件只适用于
Handsome主题,未对其它主题优化!!! - 请先将插件置于
Typecho的plugins目录下,且插件目录名应为UserAgent,注意大小写,否则将无法正常食用!!! - 修改
Handsome主题,component目录下的comments.php代码文件Handsome:版本大概第9.2.182行左右,
<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];
}
更新日志
2025-07-23
说不准新增了部分BUG😂呢,记得反馈哦!- 修复
version_compare空值问题 - 更新
纯真数据库至2025年7月16日IP数据 - 【暂未测试🫣】
历史更新日志
2025-06-26
- 删除
icon-search图标 - 更新
纯真数据库至2025年6月18日IP数据
2024-06-07
说不准新增了部分BUG😂呢,记得反馈哦!- 修复
icon-search图标与主题自带图标冲突 - 【暂未测试。Handsome 主题近 10 月未更新,预计后期将不再维护本插件😔】
2023-11-05
- 修复 "启用 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.ioAPI,有请求速率限制 - 优化 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.2.0
MD5: 93C6F07195F2D9BA3033A6803E253F0C
SHA1: DBEBF68BB9E1D1467476BDB86B5B96F40B028C62
CRC32: 4BE8BA89
效果预览




::funny:01:: 终于弄好了,主题更新后都忘记搞这个了😂
@Qing 七夕节都这么忙碌喔,莫非和我一样是单身贵族🐶
::twemoji:tongue:: 支持一下
@林阿三 ::aru:shy2::
反馈一个BUG。
在某些情况下插件会导致HTTP 502,报错信息为
Undefined variable: ua_class in /usr/share/nginx/html/usr/plugins/UserAgent/Plugin.php on line 399
将Plugin.php第396行的
$plugin_opt->effect ? $ua_class='class="ua-hover"' : "" ;
改为
$ua_class = $plugin_opt->effect ? 'class="ua-hover"' : "" ;
问题解决。
@Android Σ(゚д゚;) 怎么被`MathJax`解析了,不过大概就是这个意思,应该懂得~
@Android 夜猫子哦,早安,
反馈已记录,文章开启了`MathJax`,看样子评论区也受影响了(/ω\)
@Android ::aru:flower:: 感谢建议,已修复
@松鼠大大 ::aru:shy2:: OK,已更新。
66666
怎么我的提示“Class 'Get_Ip' not found”
@detechn 是完整安装吗?先查看下文件权限是否正常,PHP版本是否7.0以上(我的环境是PHP7.2/7.3,其他版本没有测试过)|´・ω・)ノ
@松鼠大大 已经可以了,下载的文件不完整导致的
网站开启了CDN会导致获取的IP不准
@Bixan 嗯,百度一下typecho获取用户真实IP,这个问题就解决啦,(๑•̀ㅁ•́ฅ)
@松鼠大大 解决了 谢谢啦!ヾ(≧∇≦*)ゝ
挺好的,赞一个!
好棒好棒哈哈😁୧(๑•̀⌄•́๑)૭
@Qing 早安ノ☀
@松鼠大大 早呀早呀 ::funny:02::
按照食用指南只添加了代码,其他没有做修改。也按照了tips的提示修改,上传后刷新出现错误:
syntax error, unexpected 'endif' (T_ENDIF), expecting end of file
ParseError: syntax error, unexpected 'endif' (T_ENDIF), expecting end of file in /data/wwwroot/x.cn/usr/themes/handsome/component/comments.php:210
Stack trace:
#0 /data/wwwroot/x/usr/themes/handsome/post.php(83): Widget_Archive->need('component/comme...')
#1 /data/wwwroot/x.cn/var/Widget/Archive.php(2022): require_once('/data/wwwroot/c...')
#2 /data/wwwroot/x.cn/var/Typecho/Router.php(138): Widget_Archive->render()
#3 /data/wwwroot/x.cn/index.php(23): Typecho_Router::dispatch()
#4 {main}
怎么破? ::funny:03::
@Jockie ::aru:discovertruth:: 你确定不是改错了东西
@松鼠大大 没有鸭,和原文件对比了,只修改了comment.php这个文件
@Jockie 标点符号或者其他的,,你检查一下,只添加 <?php UserAgent_Plugin::get_useragent($comments->agent,$comments->ip); ?> 是木有问题的,仔细核对下代码呢。
@松鼠大大 我是直接复制粘贴的。其他地方都没有修改。还是不行呢
@Jockie emmm,好吧,看看comment.php 210行有啥错误,语法是否正确,,实在不行,,我也木得办法呢
@松鼠大大 这个文件到底也才207行。所以我很纳闷 ::funny:19::
@Jockie 🤣🤣🤣🤣 玄学,先恢复原来的文件再说吧,我母鸡这是啥问题,也没有其他同学报过这个问题
@Jockie 我刚改的 也有你的问题 把原始的comments.php恢复 直接复制 放到同一行就好了
::funny:03:: 很好!
@Paul 大半夜还不睡觉哈,“熬夜伤身体,我建议你通宵” ::funny:06::
感谢大佬分享,文章转载可否~
@鹤别空林 (๑•̀ㅁ•́ฅ)嗯,可以,注明就行。
才发现有更新了,另外你的网站为什么名称显示是别人的名称。还有邮箱和网址都是别人的信息。
@范明明 |´・ω・)ノ应该缓存插件的锅,之前也有小伙伴说起过这件事情
@松鼠大大 现在正常了。上面那条是我评论的。
哎呦,不错呦
喜欢上了,并且正在到处折腾 ::funny:02::
@森七 ::funny:01:: 嗯嗯,折腾不止生命不息。
嘻嘻,已经用上惹
做了点小修改,当鼠标移至该评论时才会出现UA信息qwq这样感觉更好一点~
@皮皮凛 ::twemoji:ok:: 可以的哦,很细节(◦˙▽˙◦)
@皮皮凛 嘿嘿,你要的效果我现在加上去了,可以更新试试 ::funny:09::
@松鼠大大 噢噢,嘻嘻
@松鼠大大 大佬,我想参考it之家,机型放在名字后面,地址放在时间前面
@louo (๑•̀ㅁ•́ฅ)咕咕~咕咕咕,建议已收到,排序什么的,其实你也可以改一下代码的
@louo php小白,不过咨询群里的大佬后总算搞掂
哔 请求转载卡 ::funny:01::
@梁Sir o(*////▽////*)q 嗯嗯,注明就行 ::funny:57::
@松鼠大大 木的问题 ::funny:32::
我来看看你 ::funny:01::
@迷恋 ::funny:05:: 欢迎来访,喵喵喵~
这个样式真的很棒 ::funny:03::
@友人C ::aru:shy:: 😄欢迎欢迎,没有大佬的主题,也就没有这个插件效果啦
::funny:08:: 感谢大佬分享,已经换上了
@忆梦小站-你找不到的 嗯嗯,晚好,祝你使用愉快 ::funny:09::
::funny:06:: 谢谢大佬分享 ::funny:06:: 还好我每天都逛你的博客
@Airs_Lau 刚准备邮件回复你
@松鼠大大 哈哈哈 ::funny:05:: 每日一逛
@Airs_Lau ::funny:09:: 欢迎欢迎,有问题记得反馈哦,虽然不保证100%修BUG,毕竟咱技术就那水平,哈哈,祝你玩得开心!
@松鼠大大 好的,大佬,我分享一下你的这个插件哦, ::funny:01:: 请求授权
@Airs_Lau 嗯嗯,可以φ( ̄∇ ̄o)放心去玩吧,