爪哇社区
  • 首页
  • 文章
  • 问答
  • 导航



  1. 首页
  2. 文章列表
  3. php判断是不是抖音蜘蛛与搜索关键词点击进入的用户

php判断是不是抖音蜘蛛与搜索关键词点击进入的用户

发布:HelloJq 时间:2025-11-01

当用户从抖音搜索点击链接进入网站时:User-Agent含"aweme"和"TTWebView" 标识 ,PHP判断:

if(strpos($_SERVER['HTTP_USER_AGENT'], 'aweme')!==false||strpos($_SERVER['HTTP_USER_AGENT'], 'TTWebView')!==false){ return 'dy搜索点击进入'; } Referer来源特征:douyin.com
但我亲测来源为null

实战:PHP识别抖音蜘蛛

<?php
// 抖音蜘蛛检测函数
function isDouyinSpider() {
    $ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
    
    // 核心UA检测
    if (!$ua) return false;
    if (stripos($ua, 'Bytespider') === false) return false;
    if (stripos($ua, 'zhanzhang.toutiao.com') === false) return false;
    
    // IP验证(可选)
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
    if (!$ip || !filter_var($ip, FILTER_VALIDATE_IP)) return false;
    
    // 抖音蜘蛛IP段
    $byteIps = [
        '203.119.128.0/24', 
        '111.224.0.0/12',
        '112.80.0.0/12',
        '117.176.0.0/12'
    ];
    
    foreach ($byteIps as $cidr) {
        if (ipInCidr($ip, $cidr)) return true;
    }
    
    return false;
}

// IP范围检查函数
function ipInCidr($ip, $cidr) {
    list($subnet, $mask) = explode('/', $cidr);
    $ipLong = ip2long($ip);
    $subnetLong = ip2long($subnet);
    
    if ($ipLong === false || $subnetLong === false) return false;
    
    // 处理32位系统
    $maskLong = ~((1 << (32 - $mask)) - 1);
    
    return ($ipLong & $maskLong) == $subnetLong;
}
?>


爪哇社区 © 2024