前两天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
效果预览
::funny:06:: 谢谢大佬分享 ::funny:06:: 还好我每天都逛你的博客
@Airs_Lau 刚准备邮件回复你
@松鼠大大 哈哈哈 ::funny:05:: 每日一逛
@Airs_Lau ::funny:09:: 欢迎欢迎,有问题记得反馈哦,虽然不保证100%修BUG,毕竟咱技术就那水平,哈哈,祝你玩得开心!
@松鼠大大 好的,大佬,我分享一下你的这个插件哦, ::funny:01:: 请求授权
@Airs_Lau 嗯嗯,可以φ( ̄∇ ̄o)放心去玩吧,
::funny:08:: 感谢大佬分享,已经换上了
@忆梦小站-你找不到的 嗯嗯,晚好,祝你使用愉快 ::funny:09::
这个样式真的很棒 ::funny:03::
@友人C ::aru:shy:: 😄欢迎欢迎,没有大佬的主题,也就没有这个插件效果啦
我来看看你 ::funny:01::
@迷恋 ::funny:05:: 欢迎来访,喵喵喵~
哔 请求转载卡 ::funny:01::
@梁Sir o(*////▽////*)q 嗯嗯,注明就行 ::funny:57::
@松鼠大大 木的问题 ::funny:32::
嘻嘻,已经用上惹
做了点小修改,当鼠标移至该评论时才会出现UA信息qwq这样感觉更好一点~
@皮皮凛 ::twemoji:ok:: 可以的哦,很细节(◦˙▽˙◦)
@皮皮凛 嘿嘿,你要的效果我现在加上去了,可以更新试试 ::funny:09::
@松鼠大大 噢噢,嘻嘻
@松鼠大大 大佬,我想参考it之家,机型放在名字后面,地址放在时间前面
@louo (๑•̀ㅁ•́ฅ)咕咕~咕咕咕,建议已收到,排序什么的,其实你也可以改一下代码的
@louo php小白,不过咨询群里的大佬后总算搞掂
喜欢上了,并且正在到处折腾 ::funny:02::
@森七 ::funny:01:: 嗯嗯,折腾不止生命不息。
哎呦,不错呦
才发现有更新了,另外你的网站为什么名称显示是别人的名称。还有邮箱和网址都是别人的信息。
@范明明 |´・ω・)ノ应该缓存插件的锅,之前也有小伙伴说起过这件事情
@松鼠大大 现在正常了。上面那条是我评论的。
感谢大佬分享,文章转载可否~
@鹤别空林 (๑•̀ㅁ•́ฅ)嗯,可以,注明就行。
::funny:03:: 很好!
@Paul 大半夜还不睡觉哈,“熬夜伤身体,我建议你通宵” ::funny:06::
按照食用指南只添加了代码,其他没有做修改。也按照了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恢复 直接复制 放到同一行就好了
好棒好棒哈哈😁୧(๑•̀⌄•́๑)૭
@Qing 早安ノ☀
@松鼠大大 早呀早呀 ::funny:02::
挺好的,赞一个!
网站开启了CDN会导致获取的IP不准
@Bixan 嗯,百度一下typecho获取用户真实IP,这个问题就解决啦,(๑•̀ㅁ•́ฅ)
@松鼠大大 解决了 谢谢啦!ヾ(≧∇≦*)ゝ
怎么我的提示“Class 'Get_Ip' not found”
@detechn 是完整安装吗?先查看下文件权限是否正常,PHP版本是否7.0以上(我的环境是PHP7.2/7.3,其他版本没有测试过)|´・ω・)ノ
@松鼠大大 已经可以了,下载的文件不完整导致的
66666
反馈一个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,已更新。
::twemoji:tongue:: 支持一下
@林阿三 ::aru:shy2::
::funny:01:: 终于弄好了,主题更新后都忘记搞这个了😂
@Qing 七夕节都这么忙碌喔,莫非和我一样是单身贵族🐶