# 各位大佬，怎么知道每天都有哪些网站打不开404

**URL:** <https://meta.appinn.net/t/topic/84439>\
**Category:** 问题求助\
**Created:** [2026 年4 月 24 日 02:30 UTC](https://meta.appinn.net/t/topic/84439 "2026-04-24T02:30:27Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

作者： ![hope9423](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/hope9423/32/54581_2.png) [@hope9423](https://meta.appinn.net/u/hope9423)\
发布日期： [2026 年4 月 24 日 02:30 UTC](https://meta.appinn.net/t/topic/84439/1 "2026-04-24T02:30:28Z")

</div>

求一点实操方法，封于修讨教了

---

<div class="post-metadata">

作者： ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
发布日期： [2026 年4 月 24 日 03:18 UTC](https://meta.appinn.net/t/topic/84439/2 "2026-04-24T03:18:03Z")

</div>

应该可以用 cURL 吧，比如要检查 `https://meta.appinn.net` 是否可以正常访问，可执行如下命令：

```bash
curl -I https://meta.appinn.net

```

可能会得到如下形式的结果：

```plaintext
HTTP/2 200 
date: Fri, 24 Apr 2026 03:15:15 GMT
content-type: text/html; charset=utf-8
server: cloudflare
......

```

第一行是状态码，`200` 表示请求成功。

其他状态码的含义可查询本文：

> **[HTTP 响应状态码 - HTTP | MDN](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Reference/Status)**
>
> HTTP 响应状态码用来表明特定 HTTP 请求是否成功完成。
> 响应被归为以下五大类：

---

<div class="post-metadata">

作者： ![tjsky](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/tjsky/32/31059_2.png) [@tjsky](https://meta.appinn.net/u/tjsky)\
发布日期： [2026 年4 月 24 日 03:36 UTC](https://meta.appinn.net/t/topic/84439/3 "2026-04-24T03:36:11Z")

</div>

让AI写的bat脚本。

读取同目录下的 `url.txt` 文件，使用 `curl` 命令获取每个网页的 HTTP 状态码，过滤出无法正常访问的网址（过滤掉 200、301、302 等正常状态码），显示它们，并最终将这些异常记录导出到一个文本文件中

```bat
@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

```

---

<div class="post-metadata">

作者： ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
发布日期： [2026 年4 月 24 日 04:12 UTC](https://meta.appinn.net/t/topic/84439/4 "2026-04-24T04:12:26Z")

</div>

这个事情，有专业的做法（开源的项目）

比如：[https://status.appinn.com/](https://status.appinn.com/)

甚至可以实时通知你哪个网站挂了。

---

<div class="post-metadata">

作者： ![39c61369060461b674c3](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/39c61369060461b674c3/32/67823_2.png) [@39c61369060461b674c3](https://meta.appinn.net/u/39c61369060461b674c3)\
发布日期： [2026 年4 月 24 日 05:26 UTC](https://meta.appinn.net/t/topic/84439/5 "2026-04-24T05:26:40Z")

</div>

我有类似的疑惑，问题出在，有些网站需要走代理才能访问，有些走了代理反而打不开。这样检测404，会不会误杀很多实际能访问的网站？

---

<div class="post-metadata">

作者： ![kanz](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/kanz/32/65670_2.png) [@kanz](https://meta.appinn.net/u/kanz)\
发布日期： [2026 年4 月 24 日 06:00 UTC](https://meta.appinn.net/t/topic/84439/6 "2026-04-24T06:00:55Z")

</div>

这个检测页面比主站的访问速度还慢啊。。

---

<div class="post-metadata">

作者： ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
发布日期： [2026 年4 月 24 日 06:01 UTC](https://meta.appinn.net/t/topic/84439/7 "2026-04-24T06:01:19Z")

</div>

不重要啊，又没人访问 :joy: 能收到通知就行

---

<div class="post-metadata">

作者： ![tjsky](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/tjsky/32/31059_2.png) [@tjsky](https://meta.appinn.net/u/tjsky)\
发布日期： [2026 年4 月 24 日 06:17 UTC](https://meta.appinn.net/t/topic/84439/8 "2026-04-24T06:17:41Z")

</div>

这个看项目，有些网站监测项目可以自行设置走亦或者不走代理。

---

<div class="post-metadata">

作者： ![tiger](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/tiger/32/23490_2.png) [@tiger](https://meta.appinn.net/u/tiger)\
发布日期： [2026 年4 月 24 日 14:38 UTC](https://meta.appinn.net/t/topic/84439/9 "2026-04-24T14:38:05Z")

</div>

我觉得可以仿照 B 站的 [网络诊断 - 哔哩哔哩弹幕视频网 - ( ゜- ゜)つロ 干杯~ - bilibili](https://www.bilibili.com/blackboard/diagnostics.html) 工具，将常用的网站放进去，点一下就可以自动检测一遍了。
