小旋风蜘蛛池pro版本中的蜘蛛IP配置中,不仅可以通过经典的UA识别蜘蛛,还可以通过IP段识别蜘蛛,并可以做到双重识别。通过IP段识别蜘蛛,可以实现访客屏蔽,哪怕游客模拟蜘蛛抓取,都看不到真实页面HTML。
在“新程序已上线”最新的“给大家科普一下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的记录,加一个判断验证,非允许的IP段则跳转。
只不过常见的是通过UA判断蜘蛛、设备跳转,这个IP段跳转限制更大而已,非需要特定蜘蛛,一般不需要使用。
本站所有内容仅限用于学习和研究目的,程序仅供本地断网测试,转载请说明出处!
站群SEO » 通过IP段屏蔽游客访问的PHP代码
站群SEO » 通过IP段屏蔽游客访问的PHP代码