diff --git a/core/mod_google.sh b/core/mod_google.sh index b226771..e633826 100755 --- a/core/mod_google.sh +++ b/core/mod_google.sh @@ -171,45 +171,38 @@ for ((i=1; i<=TOTAL_ACTIONS; i++)); do fi done -# --- [结果纠偏自检 (V4.0.7 终极真理版: Premium穿透 + 双栈法律边界)] --- -# 战术揭秘:彻底抛弃单点依赖! -# 1. Google 首页存在严重的 CDN 缓存假象,送中 IP 经常虚假返回 US。必须强拉 /premium 页面! -# 2. 纯 IPv6 机器可能无法解析 googleusercontent,必须引入 policies.google.com 作为法律边界兜底! +# --- [结果纠偏自检 (V4.0.8 终极版权雷达版: Premium + Music 双重穿透)] --- +# 战术揭秘:彻底抛弃存在 CDN 缓存假象的首页与不稳定的 Maps 接口! +# 全面换装 Google 旗下风控最严苛的两个独立版权业务:YouTube Premium 与 YouTube Music。 +# 移除会导致 CDN 误判的 Accept-Language 伪装,以裸奔姿态直面底层风控,绝不退而求其次去抓取假阳性的 GL 变量! -log "$MODULE_NAME" "INFO " "启动双核交叉验证 (Google 法律边界 + YouTube Premium) 穿透获取真实 GeoIP..." +log "$MODULE_NAME" "INFO " "启动双核交叉验证 (YT Premium + YT Music) 穿透获取真实 GeoIP..." -# 核心 1: Google 法律边界重定向探测 (兼容纯 IPv6 双栈寻路) -MAPS_HDR=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 10 -sI "https://www.google.com/maps") -MAPS_GL=$(echo "$MAPS_HDR" | grep -i "^location:" | grep -o 'gl=[A-Za-z]\{2\}' | head -n 1 | cut -d'=' -f2 | tr 'a-z' 'A-Z') -# 容灾:纯 IPv6 机器若查不到,降级走官方用户协议接口 (100% 存在且强制支持 V6 节点) -if [ -z "$MAPS_GL" ]; then - POL_HDR=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 10 -sI "https://policies.google.com/terms") - MAPS_GL=$(echo "$POL_HDR" | grep -i "^location:" | grep -o 'gl=[A-Za-z]\{2\}' | head -n 1 | cut -d'=' -f2 | tr 'a-z' 'A-Z') -fi +# 核心 1: YouTube Premium 媒体版权风控探测 (极致裸奔,仅提取绝对核心的 countryCode) +YT_PR_HTML=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 10 -s -L "https://www.youtube.com/premium") +YT_PR_GL=$(echo "$YT_PR_HTML" | grep -o '"countryCode":"[^"]*"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z') -# 核心 2: YouTube Premium 媒体版权风控探测 (提取最深层的 countryCode,无视首页缓存) -YT_HTML=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 10 -s -L -H "Accept-Language: en-US,en;q=0.9" "https://www.youtube.com/premium") -YT_GL=$(echo "$YT_HTML" | grep -o '"countryCode":"[A-Za-z]\{2\}"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z') -# 容灾:如果没有 countryCode,尝试退化抓取 GL 变量 -[ -z "$YT_GL" ] && YT_GL=$(echo "$YT_HTML" | grep -o '"GL":"[A-Za-z]\{2\}"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z') +# 核心 2: YouTube Music 独立版权风控探测 +YT_MU_HTML=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 10 -s -L "https://music.youtube.com/") +YT_MU_GL=$(echo "$YT_MU_HTML" | grep -o '"countryCode":"[^"]*"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z') -# 综合判定逻辑:优先信任边界雷达,YT 作为辅助补充 -REAL_REGION="${MAPS_GL:-$YT_GL}" +# 综合判定逻辑:优先信任 Premium,Music 作为辅助 +REAL_REGION="${YT_PR_GL:-$YT_MU_GL}" if [ -z "$REAL_REGION" ]; then - STATUS="🚨 探针失效 (网络阻断,或已被 Google 验证码/5秒盾拦截)" + STATUS="🚨 探针失效 (未获取到版权标识,可能被 5 秒盾或严重风控拦截)" else # [基准对齐] 提取配置大区 (兼容州级穿透,如 US-TX -> US),并修正英国的 ISO 标准代码 TARGET_CC="${REGION_CODE%%-*}" [ "$TARGET_CC" == "UK" ] && TARGET_CC="GB" # 终极审判:宁可错杀,不可放过!(任一雷达报警即判送中) - if [ "$MAPS_GL" == "CN" ] || [ "$YT_GL" == "CN" ]; then - STATUS="❌ 严重高危!双核雷达判定 IP 已被中国大陆锁定 (送中)!" + if [ "$YT_PR_GL" == "CN" ] || [ "$YT_MU_GL" == "CN" ]; then + STATUS="❌ 严重高危!版权雷达判定 IP 已被中国大陆锁定 (送中)!" elif [ "$REAL_REGION" == "$TARGET_CC" ]; then - STATUS="✅ 目标区域达成 (Maps: ${MAPS_GL:-无} | YT: ${YT_GL:-无})" + STATUS="✅ 目标区域达成 (Premium: ${YT_PR_GL:-无} | Music: ${YT_MU_GL:-无})" else - STATUS="⚠️ 区域发生漂移!目标 $TARGET_CC,实际 (Maps: ${MAPS_GL:-无} | YT: ${YT_GL:-无})" + STATUS="⚠️ 区域发生漂移!目标 $TARGET_CC,实际 (Premium: ${YT_PR_GL:-无} | Music: ${YT_MU_GL:-无})" fi fi