Typecho 文档:限制指定 IP 段访问者评论
适用程序:Typecho
程序版本:1.2.1
文档作者:Lopwon
作者博客:Lopwon.com
发布页面:Lopwon.com/3506.html
许可方式:CC BY-NC-SA
注意:此文档源于作者在博客改造中的一些经验总结,转载还请署名。
敬告:此文档操作涉及程序核心文件的修改,作者不对你在使用中产生的任何问题造成的不良后果,承担责任。
文档说明
为什么会琢磨出这个文档,嗯,不胜其烦,懂的能懂……
使用方法
A 涉及文件
usr/themes/***/comments.php
B 改造文件
作用:指定 IP 段访问者无法使用评论表单。
打开你在用主题下的文件 comments.php 搜索找到以下代码,以 Typecho 默认主题为例(不同主题可能形式不同,作用是开启评论功能):
<?php if ($this->allow('comment')): ?>
将以上代码全部替换为以下代码(留意注释,以及按需修改):
<?php
function checkIP($ip, $limitIPs) { //限制指定 IP 段访问者评论
$ipLong = ip2long($ip);
foreach ($limitIPs as $limitIP) {
$startIpLong = ip2long($limitIP['start']);
$endIpLong = ip2long($limitIP['end']);
if ($ipLong >= $startIpLong && $ipLong <= $endIpLong) { //检查访问者的 IP 是否在当前 IP 段内
return true;
}
}
return false;
}
$IPArr = array( //指定限制访问的 IP 段,可根据需要添加更多 IP 段
array('start' => '192.168.0.0', 'end' => '192.168.255.255'), //示例 IP 段,请自行更改
array('start' => '10.0.0.1', 'end' => '10.0.0.100'), //示例 IP 段,请自行更改
// 使用相同的方式添加更多 IP 段
);
?>
<?php if ($this->allow('comment') && !checkIP($_SERVER['REMOTE_ADDR'], $IPArr)): ?>
至此,已完成限制指定 IP 段访问者评论的设置,处在 IP 段的访问者将无法使用评论表单,看到的是(评论已关闭)。