Upload files to "/"
This commit is contained in:
parent
b9135ca519
commit
980e39a218
|
|
@ -0,0 +1,108 @@
|
|||
#!/bin/bash
|
||||
|
||||
# ============================================================
|
||||
# TikTok 区域检测脚本 v2.0
|
||||
# 检测原理: 请求 TikTok 主站,解析响应中的 "region" 字段
|
||||
# 适用系统: Debian / Ubuntu VPS
|
||||
# ============================================================
|
||||
|
||||
Font_Red="\033[31m"
|
||||
Font_Green="\033[32m"
|
||||
Font_Yellow="\033[33m"
|
||||
Font_SkyBlue="\033[36m"
|
||||
Font_Suffix="\033[0m"
|
||||
Font_Bold="\033[1m"
|
||||
|
||||
UA_Browser="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
||||
|
||||
print_banner() {
|
||||
echo ""
|
||||
echo -e "${Font_SkyBlue}${Font_Bold}╔══════════════════════════════════════════════╗${Font_Suffix}"
|
||||
echo -e "${Font_SkyBlue}${Font_Bold}║ TikTok 区域检测脚本 v2.0 ║${Font_Suffix}"
|
||||
echo -e "${Font_SkyBlue}${Font_Bold}╚══════════════════════════════════════════════╝${Font_Suffix}"
|
||||
echo -e " 测试时间: $(date)"
|
||||
echo ""
|
||||
}
|
||||
|
||||
get_ip_info() {
|
||||
local ip
|
||||
ip=$(curl -4 -s --max-time 8 https://api64.ipify.org 2>/dev/null)
|
||||
|
||||
if [ -z "$ip" ]; then
|
||||
echo -e " ${Font_Red}无法获取出口 IP${Font_Suffix}"
|
||||
echo ""
|
||||
return
|
||||
fi
|
||||
|
||||
local isp
|
||||
isp=$(curl -s -4 --max-time 8 "https://api.ip.sb/geoip/${ip}" 2>/dev/null | grep '"organization"' | cut -f4 -d'"')
|
||||
|
||||
local ip_mask
|
||||
ip_mask=$(awk -F"." '{print $1"."$2".*.*"}' <<<"${ip}")
|
||||
|
||||
echo -e " ${Font_SkyBlue}出口网络: ${isp:-未知} (${ip_mask})${Font_Suffix}"
|
||||
echo ""
|
||||
}
|
||||
|
||||
check_tiktok() {
|
||||
echo -n -e " 正在检测 TikTok...\r"
|
||||
|
||||
# 第一次请求:不带 gzip,直接获取原始响应
|
||||
local result1
|
||||
result1=$(curl --user-agent "${UA_Browser}" \
|
||||
-s --max-time 10 \
|
||||
-H "Accept-Language: en-US,en;q=0.9" \
|
||||
"https://www.tiktok.com/" 2>/dev/null)
|
||||
|
||||
# 完全无法连接
|
||||
if [ -z "$result1" ]; then
|
||||
echo -e " TikTok Region:\t${Font_Red}❌ 连接失败(网络不通或 IP 被封)${Font_Suffix}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# 提取 region 字段
|
||||
local region1
|
||||
region1=$(echo "$result1" | grep -o '"region":"[^"]*"' | head -1 | cut -f4 -d'"')
|
||||
|
||||
if [ -n "$region1" ]; then
|
||||
echo -e " TikTok Region:\t${Font_Green}✅ 【${region1}】 可正常访问${Font_Suffix}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# 第二次请求:带 gzip 压缩头,解压后再提取
|
||||
local result2
|
||||
result2=$(curl --user-agent "${UA_Browser}" \
|
||||
-sL --max-time 10 \
|
||||
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
|
||||
-H "Accept-Encoding: gzip" \
|
||||
-H "Accept-Language: en-US,en;q=0.9" \
|
||||
"https://www.tiktok.com" 2>/dev/null | gunzip 2>/dev/null)
|
||||
|
||||
local region2
|
||||
region2=$(echo "$result2" | grep -o '"region":"[^"]*"' | head -1 | cut -f4 -d'"')
|
||||
|
||||
if [ -n "$region2" ]; then
|
||||
echo -e " TikTok Region:\t${Font_Yellow}⚠️ 【${region2}】 可访问,但可能为 IDC IP(部分功能受限)${Font_Suffix}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# 判断是否被地区封锁
|
||||
if echo "$result1" | grep -qi "not available\|unavailable\|blocked\|region restricted"; then
|
||||
echo -e " TikTok Region:\t${Font_Red}❌ 该地区已被 TikTok 封锁${Font_Suffix}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo -e " TikTok Region:\t${Font_Red}❌ 检测失败(无法解析区域信息)${Font_Suffix}"
|
||||
return 1
|
||||
}
|
||||
|
||||
print_footer() {
|
||||
echo ""
|
||||
echo -e "${Font_SkyBlue}${Font_Bold}══════════════════════════════════════════════════${Font_Suffix}"
|
||||
echo ""
|
||||
}
|
||||
|
||||
print_banner
|
||||
get_ip_info
|
||||
check_tiktok
|
||||
print_footer
|
||||
Loading…
Reference in New Issue