本帖最后由 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 这样的写法了。
|