通过IP段屏蔽游客访问的PHP代码

小旋风蜘蛛池pro版本中的蜘蛛IP配置中,不仅可以通过经典的UA识别蜘蛛,还可以通过IP段识别蜘蛛,并可以做到双重识别。通过IP段识别蜘蛛,可以实现访客屏蔽,哪怕游客模拟蜘蛛抓取,都看不到真实页面HTML。

通过IP段屏蔽游客访问的PHP代码-第1张图片

在“新程序已上线”最新的“给大家科普一下XXXXX”泛二级程序中,可以看到获取访客IP地址,并通过IP判断是否可以访问允许查看,如果不在访客IP设置的IP段内,则直接跳转到自定义文件,如404.html就可以了。

具体代码如下:

<?php
$arr = array('220.196.160','220.181.32','220.181.7','220.181.68','220.181.51','104.233.164','113.24.225','220.181.108','220.181.32','194.233.65','193.42.114','185.244.39','180.149.133','180.76.15','180.76.5','158.247.209','149.248.20','149.28.225','149.28.84','144.202.122','139.180.200','124.166.232','123.125.71','123.125.66','119.63.199','119.63.198','116.179.37','116.179.32','111.206.198');
//获取访客的IP地址,并转成数组
$iparr = explode('.',$_SERVER['REMOTE_ADDR']);
//取前三个元素组合IP段,如 220.181.108
$spiderid = $iparr[0].'.'.$iparr[1].'.'.$iparr[2];
if(in_array($spiderid,$arr)){
echo '请继续浏览网站内容!';
}else{
//header("Location:https://www.baidu.com");
$url='502.php'; //根目录随便的文件(可以自定义php或者静态文件)
$html= file_get_contents($url);
echo $html;//输出你展示给非蜘蛛内容(可以是屏蔽访客也可以做跳转)
exit();
}
?>

一般来说,我们只允许百度权重蜘蛛查看,所以只需要设置220.181和116.179的IP端就可以了。

之前我们也发过类似的《通过伪静态对垃圾蜘蛛返回403,对游客返回503的设置方法》,也可以实现一样的效果。

说到获取访客IP,之前有做过一个网站,只给特定用户查看。后来发现很多用户不自觉,分享网站给其他人查看,于是还特意做了个记录访客IP的php,可以记录排除指定ip段以外的访客IP。写的代码加了充分的注释,有兴趣的可以自行查看。

<?php
error_reporting(E_ERROR);
//获取访客IP
$ip = $_SERVER["REMOTE_ADDR"];
//balance目录下作为结算文件,文件名为ip.txt
$file_path = "balance/" . $ip . '.txt';
//获取旧有文件时间
$oldtime = date("Y-m-d", fileatime($file_path));
//获取系统时间
$newbodytime = date("Y-m-d", time());
//首先获取允许记录的ip.txt,如果访问本页面的ip在允许记录的ip内,则记录
$file = 'ip.txt';
$allow = file_get_contents($file);
if(strpos($allow,$ip) !== false){ 
    //如果系统时间不等于文件时间
    if ($oldtime != $newbodytime) {
        //首先先计次
        $body = file_get_contents($file_path);
        $newbody = number_format($body) + 1;
        unlink($file_path);
        file_put_contents($file_path, $newbody, FILE_APPEND);
        //同时也输入详细日志
        //详细日志在log目录下,记录详细的启动文件,文件名为ip.txt
        $log_path = "log/" . $ip . '.txt';
        $date = date("Y-n-j H:i:s", time());;
        $log_body = "OpenTime:$date\n";
        file_put_contents($log_path, $log_body, FILE_APPEND);
    }
}
echo $log_body;
?>

有些跑题了,上面的代码不过是将访客IP记录成txt而已,在Zblog中整合好的访客IP记录插件,更美观。

通过IP段屏蔽游客访问的PHP代码-第2张图片

结合对访客IP的记录,加一个判断验证,非允许的IP段则跳转。

只不过常见的是通过UA判断蜘蛛、设备跳转,这个IP段跳转限制更大而已,非需要特定蜘蛛,一般不需要使用。

本站所有内容仅限用于学习和研究目的,程序仅供本地断网测试,转载请说明出处!
站群SEO » 通过IP段屏蔽游客访问的PHP代码

发表评论

欢迎 访客 发表评论

聚合全网站群程序及推送工具!

联系站长 联系客服