Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

DX中版块设置中权限设置IP限制不能使用!=号的修改。

[复制链接]
rikioy 发表于 2011-10-17 10:43:21 | 显示全部楼层 |阅读模式
本帖最后由 rikioy 于 2011-10-17 11:14 编辑


图上。
regip == 127.0.0 这样写是生效的,作用是 127.0.0.1 - 127.0.0.255 这个范围内的IP都可以访问版块。
但是如果你想127.0.0.1-127.0.0.255 这个范围的IP都不能访问这个版块可能会写成  regip != 127.0.0 ,可以试试,你这样写是不生效的,!= 号只能是写完整IP才可以生效 ,例如这样 regip != 127.0.0.1 这样 127.0.0.1 的IP就不能访问这个版块了。
但是我想指定一个范围不能访问版块怎么办?

在这块由于有需要的用户提出了这个问题,所以对程序代码进行了一下小得修改。

在这个加在 function_forum.php 第101行 左右。
case 'lastip':
$formula = preg_replace("/\{([\d\.]+?)\}/", "'\\1'", $formula);
$formula = preg_replace('/(\$memberformula\[\'(regip|lastip)\'\])\s*=+\s*\'([\d\.]+?)\'/', "strpos(\\1, '\\3')===0", $formula);

这个代码段中对 == 做了特殊的处理,使用strpos 函数的结果来判断,所以可以在使用==的时候 指定IP段。但是对!=没有任何特殊处理。仅仅是 != 对比操作。所以!=号不能针对IP段使用。只能对比具体的IP。
修改方法
在上面代码下加上如下
$formula = preg_replace('/(\$memberformula\[\'(regip|lastip)\'\])\s*=+\s*\'([\d\.]+?)\'/', "strpos(\\1, '\\3')===0", $formula);
这样就能实现用 regip != 127.0.0 这样的写法了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
农夫山白水 发表于 2011-10-17 10:50:02 | 显示全部楼层
看不大明白,有什么作用吗?
回复

使用道具 举报

 楼主| rikioy 发表于 2011-10-17 11:24:00 | 显示全部楼层
恩。我增加了一些这个功能的说明。
回复

使用道具 举报

64243354 发表于 2011-10-17 17:53:44 | 显示全部楼层
支持一下 学習了~
回复

使用道具 举报

63490794 发表于 2011-10-17 17:57:48 | 显示全部楼层
回复

使用道具 举报

鱼骨刺 发表于 2011-10-17 18:23:48 | 显示全部楼层
看不懂了....
回复

使用道具 举报

李渠 发表于 2012-3-12 21:53:03 | 显示全部楼层
discuz的发帖总数和今日发帖数调用
https://discuz.dismall.com/thread-2685033-1-1.html
回复

使用道具 举报

abcnic 发表于 2012-3-13 07:48:17 | 显示全部楼层
学习呢  呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-5-18 14:20 , Processed in 0.113635 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表