【网站代码】检查搜索引擎蜘蛛爬虫真实性 PHP版

我们很多时候都会遇到伪造搜索引擎爬虫的UA,但是很多时候又无法判断他的真实性。
以下代码,为检验部分搜索引擎真实性的案例,如有更多方法,请回复评论。

[hide]

<?php
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;
}

[/hide]

阿强爱分享
  • 本文由 发表于 2019年5月30日16:41:46
  • 转载请务必保留本文链接:https://iooqp.cn/352.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:3   其中:访客  3   博主  0
    • 初遇丶不知道 初遇丶不知道 2

      测试

      • System System 1

        厉害哇我的哥IP+1

        • 1ds6af51ds 1ds6af51ds 1

          asad165sa