本站所有内容仅限用于学习和研究目的,如有侵权请邮件与我们联系处理!
世上事本无难易,为之则易!

网站首页 站群教程 引流跳转代码 正文

判断并记录蜘蛛日志,且非蜘蛛跳转的PHP代码

曹操 2023-02-08 引流跳转代码 754 ℃ 0 评论 4307字 free 收藏

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

$useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT']));
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.baidu.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;
}
目录导航
  • 解析:PHP fwrite() 函数
  • 思路延伸

  • Tags:蜘蛛发帖软件跳转

    必看说明

    • 本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。
    • 本站文章或仅为文本内容原创,非程序原创。如有侵权、不妥之处,请联系站长第一时间删除。敬请谅解!
    • 本站所有内容严格遵守国家法律的条例,所有研究的算法技术均来源于搜索引擎公开默认允许用户研究使用的接口。
    • 阅读本文及获取资源前,请确保您已充分阅读并理解《访问曹操SEO网站需知:行为准则》。
    • 本站分享的任何工具、程序仅供学习参考编写架构,仅可在本地的虚拟机内断网测试,严禁联网运行或上传搭建!
    • 任何资源必须在下载后24个小时内,从电脑中彻底删除。不得传播或者用于其他任何用途!否则一切后果用户自负!
    • 转载请注明 : 文章转载自  曹操SEO 判断并记录蜘蛛日志,且非蜘蛛跳转的PHP代码
    • 本文标题:《判断并记录蜘蛛日志,且非蜘蛛跳转的PHP代码》
    • 本文链接:https://www.ccooc.cn/1876.html

    本文暂时没有评论,来添加一个吧(●'◡'●)

    欢迎 发表评论:

    网站分类
    近期评论
    文章归档
    标签列表
    站点信息
    • 文章总数:2021
    • 页面总数:7
    • 分类总数:46
    • 标签总数:340
    • 评论总数:8895
    • 浏览总数:5175133