蜘蛛可以查php内容吗,检查搜索引擎蜘蛛爬虫真实性 PHP版

我们很多时候都会遇到伪造搜索引擎爬虫的UA,但是很多时候又无法判断他的真实性。

以下代码,为检验部分搜索引擎真实性的案例,如有更多方法,请回复评论。

因为英语不太好,所以下面的内容就有部分中文了。

if(getspider()){

exit('假的搜索引擎!');

}

function getspider(){

$访问UA = strtolower($_SERVER['HTTP_USER_AGENT']);

$访问IP = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){

$list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

$访问IP = $list[0];

}

if (!ip2long($访问IP)) $访问IP = '未知IP';

$访问主机 = str_replace('.', '-', $访问IP);

if (strpos($访问UA, 'googlebot') !== false){

$解析主机 = gethostbyaddr($_SERVER['REMOTE_ADDR']);

if ($解析主机 != 'crawl-'.$访问主机.'.googlebot.com') return 'googlebot?';

}

if (strpos($访问UA, 'sogou') !== false){

$解析主机 = gethostbyaddr($_SERVER['REMOTE_ADDR']);

if ($解析主机 != 'sogouspider-'.$访问主机.'.crawl.sogou.com') return 'sogou';

}

if (strpos($useragent, 'bing') !== false){

$解析主机 = gethostbyaddr($_SERVER['REMOTE_ADDR']);

if ($解析主机 != 'msnbot-'.$访问主机.'.search.msn.com') return 'bing';

}

if (strpos($访问UA, 'baiduspider') !== false){

$解析主机 = gethostbyaddr($_SERVER['REMOTE_ADDR']);

if ($解析主机 != 'baiduspider-'.$访问主机.'.crawl.baidu.com') return 'baiduspider?';

}

return false;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值