Login
网站首页 > 文章中心 > php

PHP判断访问来源UA代码 可进行多样化功能扩展

作者:小编 更新时间:2023-06-03 19:58:08 浏览量:108人看过

PHP判断访问来源UA代码 可进行多样化功能扩展

软件介绍:下面的PHP代码,判断是否是蜘蛛后,如是蜘蛛,则输出为日志(bot.txt),如不是蜘蛛则进行跳转。$useragent = addslashes(strtol...

下面的PHP代码,判断是否是蜘蛛后,如是蜘蛛,则输出为日志(bot.txt),如不是蜘蛛则进行跳转。


$useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT']));

(图1)

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

    $bot = 'Google';

} elseif (strpos($useragent, 'mediapartners-google') !== false) {

    $bot = 'Google Adsense';

} elseif (strpos($useragent, 'baiduspider') !== false) {

    $bot = 'Baidu';

} elseif (strpos($useragent, 'sogou spider') !== false) {

    $bot = 'Sogou';

} elseif (strpos($useragent, 'sogou web') !== false) {

    $bot = 'Sogou web';

} elseif (strpos($useragent, 'sosospider') !== false) {

    $bot = 'SOSO';

} elseif (strpos($useragent, '360spider') !== false) {

    $bot = '360Spider';

} elseif (strpos($useragent, 'yahoo') !== false) {

    $bot = 'Yahoo';

} elseif (strpos($useragent, 'msn') !== false) {

    $bot = 'MSN';

} elseif (strpos($useragent, 'msnbot') !== false) {

    $bot = 'msnbot';

} elseif (strpos($useragent, 'sohu') !== false) {

    $bot = 'Sohu';

} elseif (strpos($useragent, 'yodaoBot') !== false) {

    $bot = 'Yodao';

} elseif (strpos($useragent, 'twiceler') !== false) {

    $bot = 'Twiceler';

} elseif (strpos($useragent, 'ia_archiver') !== false) {

    $bot = 'Alexa_';

} elseif (strpos($useragent, 'iaarchiver') !== false) {

    $bot = 'Alexa';

} elseif (strpos($useragent, 'slurp') !== false) {

    $bot = '雅虎';

} elseif (strpos($useragent, 'yisouspider') !== false) {

    $bot = '神马';

} elseif (strpos($useragent, 'bot') !== false) {

    $bot = '其它蜘蛛';

}

if (isset($bot)) {

    //是蜘蛛,写出日志

     $fp = @fopen('bot.txt','a');

     fwrite($fp,date('Y-m-d H:i:s')."\t".$_SERVER["REMOTE_ADDR"]."\t".$bot.

          "\t".'http://'.$_SERVER['SERVER_NAME'].

          $_SERVER["REQUEST_URI"]."\r\n");

     fclose($fp);

} else {

    //不是蜘蛛,直接跳转

    header('Location: http://www.tugaga.com/');

解析:PHP fwrite() 函数

定义和用法


fwrite() 函数写入文件(可安全用于二进制文件)。


语法


fwrite(file,string,length)


说明


fwrite() 把 string 的内容写入文件指针 file 处。 如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。


fwrite() 返回写入的字符数,出现错误时则返回 false。


<?php

$file = fopen("test.txt","w");

echo fwrite($file,"Hello World. Testing!");

fclose($file);

?>

故如上代码输出蜘蛛记录文件bot.txt的格式是:年-月-日 蜘蛛标识 抓取链接


思路延伸

可判断如果是不需要的爬虫、设备,可返回404状态码。


if( $_SERVER['HTTP_REFERER'] == "" ) //判断规则

{

header("HTTP/1.1 404 Not Found"); //返回404状态码

header("Status: 404 Not Found"); //返回404状态码

exit;

}


版权声明:倡导尊重与保护知识产权,本站有部分资源、图片来源于网络,如有侵权,请联系我们修改或者删除处理。
转载请说明来源于"土嘎嘎" 本文地址:http://www.tugaga.com/jishu/php/172.html
<<上一篇 2023-06-03
下一篇 >> 2023-06-09

相关推荐

编辑推荐

热门文章