Mr.X https://mrx.la/ zh-CN 没什么好说的... Mon, 20 Nov 2023 04:49:00 +0800 Mon, 20 Nov 2023 04:49:00 +0800 Windows下批量添加防火墙规则小工具 https://mrx.la/775 https://mrx.la/775 Mon, 20 Nov 2023 04:49:00 +0800 Mr.X 新版本看这里:
[post cid="875" cover="" size=""/]

此工具源代码在我格式化硬盘的时候忘记我的虚拟机磁盘文件也在里面..所以没了.不再更新...

Windows防火墙批量添加3.0.1
Windows防火墙批量添加3.0

用C++重写了,然后修复了相当多的Bug.然后用MFC构建了一个界面,反正是基于Windows api,不占地方.而且优化了一下体积还更小了.只有67KB..另外经过多次测试,发现在Windows11系统中比Windows10系统要运行速度要快15倍左右.[测试的两个系统是完全相同的虚拟机配置,win10版本号是21H2 19044,win11的版本号是22H2 22621.]

看图:


更新记录:
bat版本
初版是一个bat脚本.放弃了,代码就不贴出来了

1.0
是一个只有最基本的添加功能,删除都没有,而且添加的时候没考虑到每个规则里面可以包含多个IP或者IP段,导致防火墙中看起来很乱.

2.0
增加了删除功能,考虑到每个规则里面可以包含多个IP和IP段,让用户自由选择

2.1
基本上算是非常完善了

2.2
增加了自定义端口的功能,支持单个端口或者端口段.

2.2.1
优化部分代码,增加了检测是否使用管理员权限打开的提示.总体大小无变化.

3.0
用MFC构建了一个UI界面,修复同时添加出入站的bug,原来是命名的问题,现在区分明明用In和Out结尾来区分,增加禁止全部协议功能,增加指定程序功能.为了防止单个txt文件内容过多不好编辑,程序默认读取同目录下的所有txt文件.然后加入了多线程

3.0.1
修复了一个UI上的小错误.


发现个相当严重的问题,当我添加28万行IP段的时候..会执行很久,准备用C#重写,添加多线程支持,然后会修复和优化....


几个小时后我..发现了一个纰漏,于是有了2.2版,增加了自定义端口号的功能.压缩版和未压缩版没任何区别,压缩版只是使用UPX压了一下,体积更小而已

防火墙批量工具2.2.1
防火墙批量工具2.2.1未压缩

老规矩,先给程序包的下载地址.后面的爱看不看...
软件的主要功能方便你批量添加规则到你的防火墙,你可以只允许美国用户访问,或者单独的只屏蔽美国IP段...
😥我TM最近被这些国外的IP搞的鸡飞狗跳.烦都烦死了.
查了下,Windows系统下好像没有一个好用一点的软件能批量设置这个的.没找到一个说只能允许指定的IP段访问,或者流量流向指定的IP段的..算了撒,自己动手,丰衣足食.

首先去https://www.ip2location.com/free/visitor-blocker
下载你要的国家的IP段.然后稍微整理一下,整理成如下格式保存到ip.txt文本文档中,和程序在同一个目录下.

203.19.156.0/24
203.19.176.0/24
203.19.178.0/23
203.19.208.0/24
203.19.228.0/22
203.19.233.0/24
203.19.242.0/24
203.19.248.0/23
203.19.255.0/24
203.20.17.0/24
203.20.40.0/23
203.20.44.0/24
...
...

每行一条.
更换思路,发现真的做起来,用batch想要实现我要的功能太麻烦了.用别的编程语言来实现.


我原本是想用bat脚本来写一个批量添加防火墙规则和批量删除防火墙规则的功能,来方便自己,但是实际使用起来,速度太慢,于是我想换个思路,调用Windows的系统api.来添加和删除,这样可以秒加和秒删,于是我用C++开始重写,于是...废了我两天时间了,还没完成...越搞,加的功能越复杂!然后全部推倒,只写个最简单的,批量添加和删除功能即可,因为写个远程自动获取IP的话,还要面临后期的维护更新修改.越简单,越不容易出错.

程序使用了ifstream来读取ip.txt的文本内容,就算里面几万行,也是秒读.
然后调用了Windows的系统api来添加和删除防火墙规则,速度取决于你的电脑性能,我测试,2H2G的vps,添加一万行的速度,1秒不到...回想一下用bat写的脚本,7000个规则,加完我都睡了一觉起来了...删除更是慢到令人发指,于是我删除了原本写在这里的bat脚本..
程序使用UPX压缩..可能会报毒,所以自行选择用那个.

2.2.1的截图:
未使用管理员权限打开程序的提示
使用管理员权限打开程序的提示


秒加规则
运行界面简单粗暴
迭代更新了N个版本
体积

]]>
25 https://mrx.la/775#comments https://mrx.la/feed/
展开折叠Windows11的右键菜单 https://mrx.la/774 https://mrx.la/774 Fri, 13 Oct 2023 15:35:00 +0800 Mr.X 用C++重写了一下,防止出现bat脚本的环境变量问题.
Windows 11右键菜单小工具
Windows 11右键菜单小工具未压缩



今天系统更新以后,我安装的StartAllBack突然失效了,估计又是和什么补丁冲突了,开始菜单没关系,但是这个Windows11的右键我是真的用不惯,想了想没必要专门去争对这个右键又去下载个软件,于是就写了两个Bat文件.如下图咯

解除.png
还原.png
压缩包放这里了.有需要的人自取,不过反正也没人看,自己留个备份

windows11右键菜单.zip

]]>
0 https://mrx.la/774#comments https://mrx.la/feed/
多台服务器之间比特彗星种子同步 https://mrx.la/770 https://mrx.la/770 Wed, 20 Sep 2023 02:24:00 +0800 Mr.X 如果你有N(N大于1)台做种服务器,哪这个功能就太有用了,因为你只需要给其中一台机器添加资源,其他所有的机器都会自动同步.

第一步

启用主服务器的专家模式
选项-高级设置-找到"system.enable_expert_mode",选择"是"然后应用更改.

第二步

到你的主服务器(暂时称为A)上启用比特彗星的远程下载功能,在选项-右边栏倒数第二个-远程下载自己设置好用户名和密码,以及端口,建议不要使用默认.

第三步

到从属服务器上添加RSS源.选项-右边栏-RSS-添加
那么问题来了,添加什么呢,添加的就是你的A服务器上的远程网页地址,只不过地址稍微有一点不同,http://yourname:[email protected]:1235/panel/task_list_rss注意其中的用户名和密码以及IP地址换成你自己的,也就是A服务器的
添加这个rss源以后自己设置好监听时间,以及数量,然后启用即可,这样即可N台服务器自动同步了,你只需要把资源添加到A服务器即可.

]]>
1 https://mrx.la/770#comments https://mrx.la/feed/
咱就是说...AMD你能不能给力点! https://mrx.la/769 https://mrx.la/769 Sun, 16 Jul 2023 18:01:00 +0800 Mr.X 😒7900xtx用了一个半月.不得已又上了一个4090的车...
现在显卡为嘛就这么贵.这溢价也没人管管?




对比一下,比我的7900xtx大了好多

]]>
3 https://mrx.la/769#comments https://mrx.la/feed/
芜湖.RARBG关闭了. https://mrx.la/763 https://mrx.la/763 Wed, 31 May 2023 20:11:13 +0800 Mr.X 吃饭前还在找XXX,吃完饭来一看就剩下一段话了.真的是可惜,看了下蓝鸟,和#rarbg相关的推还是很多的,看样子不是我被劫持...
所以...下一个RARBG在哪儿,有人推荐一下么?

]]>
2 https://mrx.la/763#comments https://mrx.la/feed/
Xiuno BBS小收集 https://mrx.la/759 https://mrx.la/759 Sun, 21 May 2023 19:42:00 +0800 Mr.X 开启伪静态

[collapse status="false" title="开启方法以及伪静态规则"]

必要工作

Xiuno BBS 4.x 需要编辑 conf/conf.php

编辑 'url_rewrite_on'=>1
清空 tmp 目录

Nginx

location ~* \.(htm)$ {
  rewrite "^(.*)/(.+?).htm(.*?)$" $1/index.php?$2.htm$3 last;
}

Apache

<IfModule mod_rewrite.c>
RewriteEngine on

# Apache 2.4
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*?)([^/]*)$ $1index.php?$2 [QSA,PT,L]

# Apache other
#RewriteRule ^(.*?)([^/]*)\.htm(.*)$ $1/index.php?$2.htm$3 [L]
</IfModule>

IIS

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <system.webServer>
 <rewrite>
 <rules>
 <rule name="xiuno">
 <match url="^((.*)/)?(.+).html$" />
 <action type="Rewrite" url="{R:1}\index.php?{R:2}.html" />
 </rule>
 </rules>
 </rewrite>
 </system.webServer>
</configuration>

Caddy

www.yourdomain.com

# Set this path to your site's directory.
root * /var/www

file_server

# Or serve a PHP site through php-fpm:
php_fastcgi localhost:9000

SAE

在网站根目录建立config.yaml文件,内容如下

appname: axiuno
  version: 1
  handle:
  - rewrite: if ( !is_dir() && !is_file() && path ~ "admin/(.*.htm)" ) goto "admin/index.php?%1"
  - rewrite: if ( !is_dir() && !is_file() && path ~ "[^/?].htm" ) goto "index.php?%1"

[/collapse]

XiunoBBS白屏,500错误等问题

[collapse status="false" title="解决XiunoBBS出现白屏,500错误等问题"]

开启调试模式

修改网站根目录index.php文件

// 0: Production mode; 1: Developer mode; 2: Plugin developement mode;
// 0: 线上模式; 1: 调试模式; 2: 插件开发模式;
!defined('DEBUG') AND define('DEBUG', 2);

开启调试模式或插件开发模式,可以查看网站的出错信息。

根据报错信息,禁用有问题的插件

一般开启调试模式后都能看到出错的代码行,想想你最近安装的插件,去后台挨个禁用,慢慢排查。排查完毕,将 DEBUG 改回 0

这里不得不说,大部分插件写的很一般。

备注

如果 DEBUG2 的时候没有错误,改为 0 出错。则修改 xiunophp/xiunophp.min.php 文件第18行,将 error_reporting() 的参数中的 0 改为 E_ALL

error_reporting(DEBUG ? E_ALL : E_ALL);

清理缓存

进入后台清理缓存。不要以为直接删除tmp/*就可以了,如果你使用了redisMemcached,还得靠后台清理才能清干净。

加一个忘记管理员密码

修改网站根目录下面的index.php,将DEBUG改为3,就可以直接不需要密码进入管理员后台,然后进去以后找到用户列表修改密码,在把DEBUG改为0

//3为无密码直接进入后台,记得改完以后改回来,也就是改成0
!defined('DEBUG') AND define('DEBUG', 3);

[/collapse]

一键清理后台未使用插件

写一个bash脚本,在插件目录运行

#!/bin/bash
mkdir 0
mdir=`pwd`/0
dirlist=`ls -d */`
for pdir in $dirlist
do
grep "installed\"\: 0" $pdir/conf.json > /dev/null
if [ $? -eq 0 ];then echo $pdir;mv $pdir $mdir/;fi
done
dirlist=`ls -d */`
for pdir in $dirlist
do
grep "enable\"\: 0" $pdir/conf.json > /dev/null
if [ $? -eq 0 ];then echo $pdir;mv $pdir $mdir/;fi
done

修改xiuno默认路由,让错误地址直接跳转404

使用xiuno搭建的论坛,在访问一个不存在的页面时,比如 ./test-1.htm

默认情况下,访问这个不存在的页面时,会自动跳转到首页,这会造成被恶意SEO

解决办法:

修改网站目录下的index.inc.php,第71行、72行,改成下面的代码:

//include _include(APP_PATH.'route/index.php');     break;
http_404();

修改Xiuno的帖子时间显示格式,将XX天前改成具体的年月日时分秒

打开xiunophp/misc.func.php,定位到第486行,找到如下代码:

if($seconds > 31536000) {
        return date('Y-n-j', $timestamp);
    }

修改为:

if($seconds > 259200 ) { return date('Y-m-d H:i:s', $timestamp); }

打开xiunophp/xiunophp.min.php,定位到第56行,找到如下代码

if($seconds > 31536000) { return date('Y-n-j', $timestamp); }

修改为:

if($seconds > 259200 ) { return date('Y-m-d H:i:s', $timestamp); }

后台清理缓存.

XIUNOBBS后台插件排序

XIUNOBBS后台插件排序方法,启用的插件排在前面.

排序方法:打开文件/model/plugin.func.php,找到第53行的plugin_init()函数,在该函数尾部修改一下
原代码如下:

// 本地 + 线上数据
                $plugins[$dir] = plugin_read_by_dir($dir);
            }
        }
    }

修改为以下代码即可

// 本地 + 线上数据
                $plugins[$dir] = plugin_read_by_dir($dir);
            }
            //插件排序
            $plugins = plugin_list_sort($plugins, "installed");
            $plugins = plugin_list_sort($plugins, "enable");
        }
    }

    //二维数组排序 TRUE FALSE
    function plugin_list_sort($arrlist, $col, $asc = FALSE){ 
        $colarr = $arr = array();
        foreach($arrlist as $k=>$v){
            $colarr[$k] = $v[$col];
        }
        if($asc == TRUE){
            asort($colarr);
        }else{
            arsort($colarr);
        }
        reset($colarr);
        foreach($colarr as $k=>$v){
            $arr[$k] = $arrlist[$k];
        }
        return $arr;
    }

修复xn_tag插件排序问题

默认选择多个tag标签以后,出现的帖子顺序是从最古老的帖子开始排序的,这样非常不友好,如果你的站点数据多,哪筛选一下第一页全部是上古时期的主题.改改,让他从最新的主题开始排序
打开/plugin/xn_tag/hook/forum_thread_list_before.php在95行左右找到如下:

$threadlist = thread_find_by_tids($tids);

替换成:

$threadlist = thread_find_by_tids($tids, array('tid' => 'DESC'));

然后再次筛选就会发现是从最新的主题开始了

xn_tag修改为单选

顺便记录一个,默认插件是可以让你选择多个标签的,如果你的站点需求,只让单选,可以做如下修改.打开/plugin/xn_tag/hook/post_js.htm,把里面所有的内容替换为如下内容:

<script>
var forumlist = <?php echo xn_json_encode($forumlist_show); ? >;
// 初始化值,选中的值
var tagids = <?php echo xn_json_encode($tagids); ? >;
var action = '<?php echo $action;?>';
var jfid = $('select[name="fid"]');
var fid = <?php echo intval($fid); ? >||$('select[name="fid"]').val();
jfid.on('change',
function() {
    var fid = jfid.val();
    fid_on_change(fid);
});
function fid_on_change(fid) {
    var s = '';
    var forum = forumlist[fid];
    $.each(forum.tagcatelist,
    function(k, tagcate) {
        s += '<select class="custom-select mr-1 mb-3 w-auto" name="tagid[]">';
        s += '<option value=0>' + tagcate.name + '</option>';
        $.each(tagcate.taglist,
        function(k, tag) {
            s += '<option value=' + tag.tagid + (xn.in_array(tag.tagid, tagids) || (tag.tagid == tagcate.defaulttagid && action == 'selected') ? ' selected': '') + '>' + tag.name + '</option>';
        });
        s += '</select>';
    });
    $('#nav_tag_list_div').html(s);
}
fid_on_change(fid);
$('#nav_tag_list_div').on('click', 'a.tag_option',
function() {
    var jthis = $(this);
    var tagid = jthis.attr('tagid');
    jthis.toggleClass('active');
    // 隐藏域
    var v = jthis.hasClass('active') ? tagid: '';
    jthis.next().attr('value', v);
});
// tag 选中区域。
</script>

页码翻页功能美化,免得手机上出现页码条过长

去掉上一页和下一页

开发模式改/xiunophp/misc.func.php注释掉大约390行和396行的代码

$page != 1 && $s .= pagination_tpl(str_replace('{page}', $page-1, $url), '◀', '');
$page != $totalpage && $s .= pagination_tpl(str_replace('{page}', $page+1, $url), '▶');

我TM,奇怪了,怎么粘贴上来变成了emoji表情...
线上模式改/xiunophp/xiunophp.min.php删除掉如下内容:

$page != 1 && $s .= pagination_tpl(str_replace('{page}', $page-1, $url), '◀', '');
$page != $totalpage && $s .= pagination_tpl(str_replace('{page}', $page+1, $url), '▶');

缩短页码显示数量

开发模式打开/xiunophp/misc.func.php大约第378行找到$shownum = 5; // 显示多少个页 * 2改为$shownum = 2;
线上模式打开/xiunophp/xiunophp.min.php搜索$shownum = 5;改为$shownum = 2;

意思是左右各几个页码,5就是10个,2就是4个

修改上传图片的质量

打开/view/js/xiuno.js在大约1122行找到var qulity = options.qulity修改后面的数字,1为位无损,小于1则压缩图片质量

游客登录提示

找到你正在使用的模板目录的thread.htm文件,在合适位置加入如下内容:
比如我用的默认模板,就打开view/htm/thread.htm在147行左右加入下面的代码.

<?php if(empty($uid)){?>
        <div class="card text-center"><p></p><p class="text-center">
            你可以在 <a href="<?php echo url("user-login");?>"><b>登录</b></a> or <a href="<?php echo url("user-create");?>"><b>注册</b></a> 后,对此帖发表评论!</p>
        </div>
<?php }?>

解决透明背景PNG图片显示问题

默认上传透明背景的PNG图片会直接显示为黑色背景,解决方法如下:
1.打开view/js/xiuno.js文件,在大约1121行找到如下内容进行替换,
替换前:

var thumb_height = options.height || 2400;
var action = options.action || 'thumb';
var filetype = options.filetype || xn.image_file_type(file_base64_data);//xn.base64_data_image_type(file_base64_data);
var qulity = options.qulity || 0.9; // 图片质量, 1 为无损
    
if(thumb_width < 1) return callback(-1, '缩略图宽度不能小于 1 / thumb image width length is less 1 pix');

替换后:

var thumb_height = options.height || 2400;
var action = options.action || 'thumb';
//var filetype = options.filetype || xn.image_file_type(file_base64_data);//xn.base64_data_image_type(file_base64_data);
var filetype = xn.image_file_type(file_base64_data);//xn.base64_data_image_type(file_base64_data);
var qulity = options.qulity || 0.9; // 图片质量, 1 为无损
    
if(thumb_width < 1) return callback(-1, '缩略图宽度不能小于 1 / thumb image width length is less 1 pix');

2.在1226行左右找到if(filetype == 'jpg') filetype = 'jpeg';在下面增加一行if(filetype == 'png') filetype = 'png';.具体如下:

//filetype = 'png';
if(filetype == 'jpg') filetype = 'jpeg';
if(filetype == 'png') filetype = 'png';
var s = canvas.toDataURL('image/'+filetype, qulity);
if(callback) callback(0, {width: width, height: height, data: s});

3.清空后台缓存,强制刷新浏览器看效果

修复git_tags插件开启伪静态以后报错问题.

找到/git_tags/view/js/tag.js把63,88以及97行的?tag-xxx.htm前面的问号去掉即可.或者你可以直接下载附件.
git_tags伪静态修复版
要是还不放心,自己对照着改吧

//自己在你的tag.js里面搜索下面这三个,去掉tag前面的问号.
...
var url = '?tag-del.htm'
...
var url = '?tag-add.htm'
...
a href="?tag-'+msg+'.htm"
...

帖子增强插件修[首页帖子列表显示板块2]功能为彩色标签

1.打开/plugin/haya_post_info/hook/thread_list_inc_username_before.htm
找到:

<a href="<?php echo url("forum-$_thread        [fid]");?>" target="_blank" title="<?php echo $_thread        ['forumname'];?>" class="badge  small mr-2 haya-post-info-home-thread-forum-username-before">

替换为:

<a href="<?php echo url("forum-$_thread        [fid]");?>" target="_blank" title="<?php echo $_thread        ['forumname'];?>" class="badge 
<?php if ($_thread        ['fid'] == 1) { ?>
badge-primary
<?php } ?>
<?php if ($_thread        ['fid'] == 2) { ?>
badge-secondary
<?php } ?>
<?php if ($_thread        ['fid'] == 3) { ?>
badge-success
<?php } ?>
<?php if ($_thread        ['fid'] == 4) { ?>
badge-info
<?php } ?>
<?php if ($_thread        ['fid'] == 5) { ?>
badge-warning
<?php } ?>
<?php if ($_thread        ['fid'] == 6) { ?>
badge-danger
<?php } ?>
<?php if ($_thread        ['fid'] == 7) { ?>
badge-secondary
<?php } ?>
<?php if ($_thread        ['fid'] == 8) { ?>
badge-dark
<?php } ?>
<?php if ($_thread        ['fid'] == 9) { ?>
badge-primary
<?php } ?>
<?php if ($_thread        ['fid'] == 10) { ?>
badge-warning
<?php } ?> small mr-2 haya-post-info-home-thread-forum-username-before">

2.后台帖子增强插件设置 - 首页帖子列表显示板块2 - 开启

举例:
比如红色就按照这样子格式:badge-danger

<?php if ($_thread        ['fid'] == 5) { ?>
badge-danger
<?php } ?>

附上颜色对照表:

xiuno修改置顶的小图标

可能有人不太喜欢那个小旗帜图标,把置顶图标直接换成向上顶的箭头吧
css代码,放到:全局 : html > head (css)

<style>
[class^="icon-top-"]:before {
content: "\f0aa";}
</style>

XiunoBBS 官方搜索插件改进

简单的说就是让搜索支持组合搜索,比如你站点上有个标题叫我是你爹的文章,搜索或者你爹都可以收到,如果你搜索我+空格+你爹中间多一个空格你会发现什么都没有.毕竟上古时期的玩意了,修复修复. 打开xn_search\route\search.php ,添加和修改以下代码

foreach($keyword_arr as $key => $cond_val){
    $cond_sql .= ($range == 1?"subject":"message")." LIKE '%$cond_val%'";
    if($key != count($keyword_arr) - 1)$cond_sql .= ' AND ';
}​

主题URL字段自定义

打开index.inc.php,找到如下:

case 'thread':    include _include(APP_PATH.'route/thread.php');     break;

在下面添加一行.其中tiezi就是你要自定义的url字段.不能改成已经存在的字段.

`case 'tiezi':    include _include(APP_PATH.'route/thread.php');     break;`

完事以后修改一下所有你在用的模板和插件里面对应的.把thread改成你要的.清理缓存,完事.

利用大白自定义插件实现站外链接跳转提示

代码放到自定义JS里面,作用于全局.

<script>!function() {
    $("a").each(function() {
        var url = $(this).attr('href');
        if (url.length > 0 && url.indexOf('http') >= 0 && url.indexOf(window.location.host) < 0) {
            // console.log(url);
            $(this).click(function() {
                $.confirm('即将离开网站,请注意您的帐号和财产安全。</br>' + $(this).attr('href') + '', function() {
                    window.open(url);
                });
                return false;
            });
        }
    });}();</script>

非插件实现图片灯箱

适合有强迫症的人,不喜欢装太多插件的.
使用的JS就2KB大小,项目地址:https://tokinx.github.io/ViewImage/

在你要实现图片灯箱的页面加入下面的html即可,默认只需要加在主题页面

<script>
$(".message img").on("click",function (){
window.ViewImage && ViewImage.init('.message img');
});
</script>
<script src="//tokinx.github.io/ViewImage/view-image.min.js"></script>

或者使用大白自定义工具,添加到主题页的html或者js中

解决发帖时候出现xhr.responseText:, type:error

注释掉post.func.php 里的include xn_html_safe.func.php 即可,但是不建议这样,有安全风险

给帖子图片增加圆角和阴影特效的方法

打开/view/css/bootstrap-bbs.css大概242行,找到

.message img {
 ...
 }

替换为

 .message img {
   max-width: 100%;
   height: auto !important;
   border: 1px solid #dee2e6;
   margin-bottom: 0.75rem;
   margin-right: 0.5em;
   border-radius:6px;
   box-shadow: 6px 6px 12px 0px rgba(0,0,0,0.2),0px 0px 8px 0px rgba(0,0,0,0.19);
 }
]]>
0 https://mrx.la/759#comments https://mrx.la/feed/
时隔一年半?我又上了AMD的车 https://mrx.la/757 https://mrx.la/757 Fri, 21 Apr 2023 01:12:00 +0800 Mr.X 😁5950x也用了快2年了,要下岗了.7950x3d来咯..哈哈
当然这次我顺便升级了下显卡,上一次用A卡还是上一次.哈哈,可能有10年了?
7950x3d+7900xtx

]]>
0 https://mrx.la/757#comments https://mrx.la/feed/
PingInfoView v2.30简体中文版 https://mrx.la/753 https://mrx.la/753 Tue, 17 Jan 2023 04:36:29 +0800 Mr.X 😁之前制作了一份2.25的中文版,[post cid="314" cover="" size="small"/]
今天刚好没玩游戏,恰好看到作者发布了2.30,重新翻译了一下,顺带修正了以前2.25版本中的一些不完美的地方.


[album type="photos"]



[/album]


PingInfoView2.30简体中文版

]]>
0 https://mrx.la/753#comments https://mrx.la/feed/
Windows下Kangle Web Server安装Memcached扩展 https://mrx.la/745 https://mrx.la/745 Wed, 11 Jan 2023 02:47:00 +0800 Mr.X 😂如果你能看到,哪么恭喜你,你来对了地方,你百度了一圈,发现所有写的是memcached的文章,里面都是装的memcache,我怀疑他们根本分不清楚memcachememcached,所以我们得出一个结论,就是百度傻逼.


下载DLL文件

首先你要去https://github.com/lifenglsf/php_memcached_dll 下载最新的dll文件,别问为什么去这里,你以为我没去尝试官方的dll么?解压后得到如下文件.[特别注意,如果没其他需求,选择对应版本basic包中的文件即可]
然后选择你所需要的版本,如果你是非线程安全就选NTS如果是启用了线程安全就选TS,具体这个怎么看..还有到底是x86还是x64嘛..你新建一个info.php文件然后内容如下:

<?php
phpinfo();
?>

然后通过你的浏览器访问你的域名/info.php即可查看到你的信息,如下图:

安装

复制文件到指定目录,比如我的环境是x64nts以及php7.4,且我想用3.2.0版本,那么就是/3.2.0/basic/php7.4/nts_x64目中的DLL文件.具体如下

  1. 复制php_memcached.dll到你的php版本对应目录的ext文件夹下.
  2. 复制libmemcached.dll到你的php版本根目录下
  3. 打开你的php.ini文件,如果你是用的kangle.那么打开php-templete.ini,在最后面加上extension=php_memcached.dll
    如下:
[memcached]
extension=php_memcached.dll
  1. 重启web server,或者重启你的php.

成功提示

安装成功以后再次访问你的域名/info.php可以在其中看到Memcached已经出来了,如下图:

检测工具

你也可以使用这个这个小工具来检测你的安装是否有效,上传访问即可,如果是远程memcached服务端,注意修改里面的IP地址.虽然写的是memcache,但是同样适用于memcached
memcached检测工具

可能会遇到的问题

Windows系统下memcached请求和通讯是需要memcache的,也就是说.你还需要启用memcache哈哈,不过一般现在什么集成环境都已经默认启用了memcahe如果没启用,找到对应的php-templete.ini文件,找到;extension=memcache去掉前面的;,然后重启php,或者重启web server.如果你连memcahe扩展都没有,哪麻烦你再去百度一下吧,这个我就不发了.太简单了

顺便存几个CC防御页面的代码,来自ITZMX

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Cache-Control: no-cache,no-store
Recaptcha: Anti-CC

<html><body><script language="Javascript">window.location="{{url}}";</script><a href="{{url}}"><div class="notice">
<div class="title">You have verified successfully</div>
<div class="description">Please wait, you are being redirected …</div>
</div></a></body></html>

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Cache-Control: no-cache,no-store
Recaptcha: Anti-CC


<!DOCTYPE html>
<meta charset="utf-8">
<style>
body,h1,h2,h3,h4,p,form,ol,ul{margin:0;}
ol,ul{padding:0;}
body,textarea,input,option,button{font:1.5em "PT Serif",\5FAE\8EDF\6B63\9ED1\9AD4,\5FAE\8F6F\96C5\9ED1,\534E\6587\7EC6\9ED1,Georgia,Times,"Times New Roman",serif;color:#222;}
h1,h2,h3,h4{font-weight:300;}
textarea:focus,input:focus{outline:none;}
::selection{background:rgba(0,149,255,0.1);}
ul{list-style-type:none;}
a{color:#333;text-decoration:none;}
html{overflow:auto;overflow-y:scroll;}
img{border:0 none;width:55px;height:54px;}
.o{overflow:hidden;zoom:1;}
.l{float:left;}
.r{float:right;}

html{text-align:center;}
h1{font-size:3em;padding:1em 0;}
p{padding:10px 0;}
.footer{padding:3em;color:#999;}
</style>
<title>CDN 安全防护系统</title>
<script>
function addZero(str,lenght){
return (Array(lenght).join(0) + str).slice(-lenght); 
}
function goto()
{
s1=2268322/151;
s2=6585-151;s1=addZero(s1,5);s2=addZero(s2,5);se=s1+s2;
location.href="{{murl}}";}</script><h1>CDN 安全防护系统</h1><p>该网站可能遇到CC攻击,正在对您的身份进行鉴定,单击下方按钮跳转至该网站</p><p><input type="button" onclick="goto();" value="-> 继续访问 <-" /></p><div class="footer">&#169; CDN 安全防护系统</div>

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Cache-Control: no-cache,no-store
Recaptcha: Anti-CC

<!DOCTYPE html>

<meta charset="utf-8">
<style>
body,h1,h2,h3,h4,p,form,ol,ul{margin:0;}
ol,ul{padding:0;}
body,textarea,input,option,button{font:1.5em "PT Serif",\5FAE\8EDF\6B63\9ED1\9AD4,\5FAE\8F6F\96C5\9ED1,\534E\6587\7EC6\9ED1,Georgia,Times,"Times New Roman",serif;color:#222;}
h1,h2,h3,h4{font-weight:300;}
textarea:focus,input:focus{outline:none;}
::selection{background:rgba(0,149,255,0.1);}
ul{list-style-type:none;}
a{color:#333;text-decoration:none;}
html{overflow:auto;overflow-y:scroll;}
img{border:0 none;width:55px;height:54px;}
.o{overflow:hidden;zoom:1;}
.l{float:left;}
.r{float:right;}

html{text-align:center;}
h1{font-size:3em;padding:1em 0;}
p{padding:10px 0;}
.footer{padding:3em;color:#999;}
</style>

<title>CDN安全防护系统</title>
<script>
function addZero(str,lenght){
return (Array(lenght).join(0) + str).slice(-lenght); 
}
function goto()
{
s1=16319-813;
s2=15689274/813;s1=addZero(s1,5);s2=addZero(s2,5);se=s1+s2;
location.href="{{murl}}";}setTimeout("goto()",5000);</script><h1>CDN 安全防护系统</h1><p>该网站可能遇到CC攻击,正在对您的身份进行鉴定,请等候几秒钟</p><p><!--input type="button" onclick="goto();" value="-> 继续访问 <-" /--><img src="data:image/gif;base64,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"></p><div class="footer">&copy; CDN 安全防护系统</div>
]]>
0 https://mrx.la/745#comments https://mrx.la/feed/
解决Xiuno BBS安装在php7.4+环境中遇到的报错 https://mrx.la/742 https://mrx.la/742 Wed, 11 Jan 2023 01:40:00 +0800 Mr.X 😂瞎G8折腾忘记备份,把rarefav的数据库保存了,但是文件没保存,没了,我说反正是为了方便自己,干脆换个简单快捷的程序,就试了试Xiuno BBS,虽然早就停更了,但是不得不说,这程序是真的牛B.不过毕竟是早就停更的程序,在高版本的PHP中有些被弃用的函数无法使用,于是就着手解决了一下.大概率我不会用Xiuno BBS来接着做RareFav,只是遇到了,解决,记录.


解决PHP7.4+安装Xiuno BBS爆get_magic_quotes_gpc()函数错误

症状如下:

//报错信息
Deprecated: Function get_magic_quotes_gpc() is deprecated in .....

1.打开/xiunophp/xiunophp.min.php/xiunophp/xiunophp.php.找到这两个文件的第20行.如下

$get_magic_quotes_gpc = get_magic_quotes_gpc();

替换为

$get_magic_quotes_gpc = 0;

2.打开/xiunophp/xn_html_safe.func.php 分别在第785行,第938行,第951行.找到rawtext{....}替换为rawtext[....],算了,我怕有些人看不懂,我放个代码片段上来.如下:

//说白了,就是把{}替换成[],因为数组{}也被弃用了..
//替换前
function scanCharacter() {
        if ($this->position < $this->length) {
            return $this->rawtext{$this->position++};
        }
    }
//替换后的代码片段
function scanCharacter() {
        if ($this->position < $this->length) {
            return $this->rawtext[$this->position++];
        }
    }
//注意有3个地方需要替换,785行,938行,951行

解决php8.1下http_url_path报错

找到xiunophp/misc.func.php文件大约1035行到1045行.进行如下替换

替换前

// 获取 http://xxx.com/path/
function http_url_path() {
    $port = _SERVER('SERVER_PORT');
    //$portadd = ($port == 80 ? '' : ':'.$port);
    $host = _SERVER('HTTP_HOST');  // host 里包含 port
    $https = strtolower(_SERVER('HTTPS', 'off'));
    $proto = strtolower(_SERVER('HTTP_X_FORWARDED_PROTO'));
    $path = substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'));
    $http = (($port == 443) || $proto == 'https' || ($https && $https != 'off')) ? 'https' : 'http';
    return  "$http://$host$path/";
}

替换后

// 获取 http://xxx.com/path/
function http_url_path() {
    $port = _SERVER("SERVER_PORT");
    //$portadd = ($port == 80 ? "" : ":".$port);
    $host = _SERVER("HTTP_HOST");  // host 里包含 port
    $https = strtolower(_SERVER("HTTPS", "off"));
    $proto = _SERVER("HTTP_X_FORWARDED_PROTO") ? strtolower(_SERVER("HTTP_X_FORWARDED_PROTO")) : ""; //加判断
    $path = substr($_SERVER["PHP_SELF"], 0, strrpos($_SERVER["PHP_SELF"], "/"));
    $http = (($port == 443) || $proto == "https" || ($https && $https != "off")) ? "https" : "http";
    return  "$http://$host$path/";
}

MySql8.0写入数据库报错

前面都解决了,最后安装到写入数据库的时候又出现了Server Response Empty!报错.解决办法超级简单,因为Mysql8.0和之前的版本有蛮多不同.如下:

打开/install/install.sql.将78行的rank替换为ˋrankˋ.参考下面的

替换前

name char(16) NOT NULL default '',            # 版块名称
rank tinyint(3) unsigned NOT NULL default '0',    # 显示,倒序,数字越大越靠前
threads mediumint(8) unsigned NOT NULL default '0',    # 主题数

替换后

name char(16) NOT NULL default '',            # 版块名称
`rank` tinyint(3) unsigned NOT NULL default '0',    # 显示,倒序,数字越大越靠前
threads mediumint(8) unsigned NOT NULL default '0',    # 主题数
]]>
0 https://mrx.la/742#comments https://mrx.la/feed/