Skip to content

magiccode1412/blockedcheck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IP 屏蔽检测

检测 Cloudflare / Deno 等平台的边缘节点 IP 是否被抖音、哔哩哔哩、小红书、今日头条等网站屏蔽。后端定时请求目标站点并综合判定屏蔽状态,结果存入 KV;前端以仪表板形式可视化展示。

项目结构

├── scripts/
│   ├── cloudflare.js   # Cloudflare Worker 后端(定时检测 + KV 存储 + API)
│   └── deno.js         # Deno Deploy 后端(定时检测 + KV 存储 + API)
└── web/                # Vue 3 + Vite 前端面板
    ├── src/
    │   ├── App.vue
    │   ├── components/
    │   │   ├── AppHeader.vue        # 导航栏 + 平台选项卡
    │   │   ├── DetectionResult.vue  # 检测结果面板
    │   │   ├── StatusCard.vue       # 单站点状态卡片
    │   │   ├── HistorySection.vue   # 历史趋势
    │   │   └── SettingsModal.vue    # API 地址设置弹窗
    │   ├── composables/
    │   │   └── useSettings.js       # 设置管理(localStorage + 环境变量)
    │   └── utils/
    │       └── api.js               # API 请求工具
    ├── .env.example
    ├── package.json
    └── vite.config.js

检测逻辑

通过以下四个维度综合判定 IP 是否被屏蔽:

维度 说明
HTTP 状态码 403/451/412 等判定为屏蔽,301/302/503 等判定为疑似
响应体关键词 匹配"验证码"、"安全验证"、"访问受限"等判定为屏蔽
重定向检测 最终 URL 含 verify/captcha/security 等判定为屏蔽
响应体长度 HTML 响应 < 1000 字符可能为拦截页面,判定为疑似

判定结果分为四个级别:normal(正常)、suspect(疑似)、blocked(屏蔽)、error(异常)。

检测目标

站点 域名
抖音 douyin.com
哔哩哔哩 bilibili.com
小红书 xiaohongshu.com
今日头条 toutiao.com

可在脚本顶部的 TARGET_SITES 配置中自行增减。


后端部署

Cloudflare Worker

  1. 安装 Wrangler CLI
  2. 创建 KV 命名空间:
wrangler kv:namespace create "IP_BLOCK_DETECTION"
  1. 创建 wrangler.toml 配置文件:
name = "ip-block-detection"
main = "scripts/cloudflare.js"

[triggers]
crons = ["*/30 * * * *"]

[[kv_namespaces]]
binding = "KV"
id = "<your-namespace-id>"
  1. 部署:
wrangler deploy

Deno Deploy

  1. 登录 Deno Deploy 控制台
  2. 创建新项目,入口文件指向 scripts/deno.js
  3. 无需额外配置,Deno KV 和 Cron 自动可用

API 接口

两个后端提供相同的 REST API:

接口 说明
GET /check 手动触发一次检测
GET /latest 获取最新检测摘要
GET /history/{yyyy-MM-dd} 获取指定日期的检测历史
GET /report/results/{yyyy-MM-dd}/{timestamp} 获取某次完整报告
GET / API 说明

所有接口均支持 CORS 跨域访问。

KV 数据结构

TTL
results/{日期}/{时间} 完整检测报告 JSON 90 天
latest_summary 最新一次检测摘要 永久
history/{日期} 当天检测统计列表 90 天

前端部署

cd web
npm install
npm run dev

环境变量(可选)

构建时可传入默认 API 地址,用户也可在页面设置中覆盖:

VITE_CLOUDFLARE_API_URL=https://your-worker.workers.dev \
VITE_DENO_API_URL=https://your-project.deno.dev \
npm run build

或创建 .env 文件(参考 .env.example):

VITE_CLOUDFLARE_API_URL=
VITE_DENO_API_URL=

主题

自动跟随浏览器系统主题(深色/浅色),无需手动切换。

配置优先级

localStorage 设置 > 构建时环境变量 > 空

用户在设置弹窗中填写的 URL 会保存到浏览器 localStorage,优先级高于构建时的环境变量。

About

检测 Cloudflare / Deno 等平台的边缘节点 IP 是否被抖音、哔哩哔哩、小红书、今日头条等网站屏蔽。后端定时请求目标站点并综合判定屏蔽状态,结果存入 KV;前端以仪表板形式可视化展示。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors