PHP禁止IP访问(不过滤搜索引擎蜘蛛)的方法
本节内容:
PHP禁止IP访问,但搜索引擎蜘蛛例外,包括Baiduspider、BaiduGame、Googlebot、Sogou web spider、YoudaoBot等均被允许。
例子:
<?php
/**
* 屏蔽指定的IP地址访问,但不屏蔽搜索引擎的蜘蛛
* by www.jbxue.com
*/
function get_ip_data(){
$ip=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".get_client_ip());
$ip = json_decode($ip);
if($ip->code){
return false;
}
$data = (array) $ip->data;
if($data['region']=='湖北省' && !isCrawler()){
exit('http://www.jbxue.com');
}
}
function isCrawler() {
$spiderSite= array(
"TencentTraveler",
"Baiduspider+",
"BaiduGame",
"Googlebot",
"msnbot",
"Sosospider+",
"Sogou web spider",
"ia_archiver",
"Yahoo! Slurp",
"YoudaoBot",
"Yahoo Slurp",
"MSNBot",
"Sogou Spider",
"Speedy Spider",
"Google AdSense",
"Heritrix",
"Fish search",
);
if(in_array(strtolower($_SERVER['HTTP_USER_AGENT']),$spiderSite)){
return true;
}else{
return false;
}
}
//获取客户端的IP地址
function get_client_ip()
{
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if (getenv("HTTP_X_FORWARDED_FOR")){
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}
您可能感兴趣的文章:
PHP禁止IP访问(不过滤搜索引擎蜘蛛)的方法
教你从UserAgent识别搜索引擎并判断真假蜘蛛
搜索引擎蜘蛛爬行统计分析
搜索引擎robots.txt基础写法
Google优化网站管理员指导方针
GOOGLE 工作原理分析
网页设计注意事项
认识搜索引擎优化
GG优化之一——GG搜索引擎优化的思路
php判断搜索引擎蜘蛛爬虫的方法整理