求一点实操方法,封于修讨教了
应该可以用 cURL 吧,比如要检查 https://meta.appinn.net 是否可以正常访问,可执行如下命令:
curl -I https://meta.appinn.net
可能会得到如下形式的结果:
HTTP/2 200
date: Fri, 24 Apr 2026 03:15:15 GMT
content-type: text/html; charset=utf-8
server: cloudflare
......
第一行是状态码,200 表示请求成功。
其他状态码的含义可查询本文:
1 个赞
让AI写的bat脚本。
读取同目录下的 url.txt 文件,使用 curl 命令获取每个网页的 HTTP 状态码,过滤出无法正常访问的网址(过滤掉 200、301、302 等正常状态码),显示它们,并最终将这些异常记录导出到一个文本文件中
@echo off
setlocal enabledelayedexpansion
:: ==========================================
:: 参数配置区
:: ==========================================
:: 获取当前脚本所在目录的 url.txt 和导出结果文件路径
set "INPUT_FILE=%~dp0url.txt"
set "OUTPUT_FILE=%~dp0failed_urls.txt"
:: 设置 curl 的超时时间(秒),防止某个死链卡住太久
set "TIMEOUT=10"
:: ==========================================
:: 环境检查与初始化
:: ==========================================
if not exist "%INPUT_FILE%" (
echo [错误] 找不到文件: %INPUT_FILE%
echo 请确保 url.txt 文件与本脚本放在同一目录下!
pause
exit /b
)
:: 清空或创建输出文件,确保每次运行都是全新的记录
type nul > "%OUTPUT_FILE%"
echo 开始检测网址状态...
echo ==================================================
:: ==========================================
:: 核心处理逻辑
:: ==========================================
:: 逐行读取 url.txt 文件内容,跳过空行
for /f "usebackq delims=" %%a in ("%INPUT_FILE%") do (
set "URL=%%a"
:: 使用 curl 获取状态码
:: -s: 静默模式,隐藏下载进度条
:: -o NUL: 丢弃抓取到的网页源代码(Windows环境下使用NUL)
:: -w "%%{http_code}": 执行完成后仅输出 HTTP 状态码
:: -m: 限制最大传输时间
for /f %%b in ('curl -s -o NUL -w "%%{http_code}" -m %TIMEOUT% "!URL!"') do (
set "STATUS_CODE=%%b"
)
:: 200(正常), 301(永久重定向), 302(临时重定向) 视为可访问
set "IS_OK=0"
if "!STATUS_CODE!"=="200" set "IS_OK=1"
if "!STATUS_CODE!"=="301" set "IS_OK=1"
if "!STATUS_CODE!"=="302" set "IS_OK=1"
:: 如果状态码为 000,通常说明 DNS 解析失败或完全无法连接
if "!STATUS_CODE!"=="000" set "STATUS_CODE=ERR"
:: 根据判断结果进行输出和记录
if "!IS_OK!"=="0" (
echo [异常] 状态码: !STATUS_CODE! - 网址: !URL!
:: 将异常网址写入导出文件
echo 状态码: !STATUS_CODE! - 网址: !URL! >> "%OUTPUT_FILE%"
) else (
echo [正常] 状态码: !STATUS_CODE! - 网址: !URL!
)
)
:: ==========================================
:: 结束
:: ==========================================
echo ==================================================
echo 检测完成!
echo 所有不可访问的网址已导出至: %OUTPUT_FILE%
pause
2 个赞
1 个赞
我有类似的疑惑,问题出在,有些网站需要走代理才能访问,有些走了代理反而打不开。这样检测404,会不会误杀很多实际能访问的网站?
这个检测页面比主站的访问速度还慢啊。。
不重要啊,又没人访问
能收到通知就行
这个看项目,有些网站监测项目可以自行设置走亦或者不走代理。
我觉得可以仿照 B 站的 网络诊断 - 哔哩哔哩弹幕视频网 - ( ゜- ゜)つロ 干杯~ - bilibili 工具,将常用的网站放进去,点一下就可以自动检测一遍了。