XIU2/CloudflareSpeedTest · warning

CFST 测速结果 IP 数量为 0,跳过下面步骤...

Error message

CFST 测速结果 IP 数量为 0,跳过下面步骤...

What it means

Informational guard in the CFST Windows DDNS batch script: after `echo.|cfst.exe -o "result_ddns.txt"` runs, the script checks `if not exist result_ddns.txt` and prints this message before jumping to :END. CFST only writes the -o output file when at least one Cloudflare IP passed all latency/speed filters, so a missing file means the speed test found zero usable IPs. This is a deliberate early-exit, not a crash — the DNS record is simply left untouched for this run.

Source

Thrown at script/cfst_ddns.bat:16

:: --------------------------------------------------------------
::	项目: CloudflareSpeedTest 自动更新域名解析记录
::	版本: 1.0.6
::	作者: XIU2
::	项目: https://github.com/XIU2/CloudflareSpeedTest
:: --------------------------------------------------------------
@echo off
Setlocal Enabledelayedexpansion

:: 这里可以自己添加、修改 CFST 的运行参数,echo.| 的作用是自动回车退出程序(不再需要加上 -p 0 参数了)
echo.|cfst.exe -o "result_ddns.txt"

:: 判断结果文件是否存在,如果不存在说明结果为 0
if not exist result_ddns.txt (
    echo.
    echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
    goto :END
)

for /f "skip=1 tokens=1 delims=," %%i in (result_ddns.txt) do (
    Echo %%i
    if "%%i"=="" (
        echo.
        echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
        goto :END
    )
::  API 密钥方式(全局权限)
    curl -X PUT "https://api.cloudflare.com/client/v4/zones/域名ID/dns_records/域名解析记录ID" ^
            -H "X-Auth-Email: 账号邮箱" ^
            -H "X-Auth-Key: 前面获取的 API 密钥" ^
            -H "Content-Type: application/json" ^
            --data "{\"type\":\"A\",\"name\":\"完整域名\",\"content\":\"%%i\",\"ttl\":1,\"proxied\":true}"
::  API 令牌方式(自定义权限),如果要使用这种方式,可以把上面的删除或注释,然后把下面的行首 "::" 注释符删除即可。
::    curl -X PUT "https://api.cloudflare.com/client/v4/zones/域名ID/dns_records/域名解析记录ID" ^

View on GitHub (pinned to 1da0c025d7)

Solutions

  1. Run `cfst.exe -o result_ddns.txt` manually in the same folder and watch stdout — if it prints 0 usable IPs, relax the filters (lower -sl, raise -tl) in the `echo.|cfst.exe ...` line.
  2. Confirm cfst.exe exists in the script's working directory and is not quarantined by antivirus.
  3. Provide a fresh pool: download a new ip.txt / ipv6.txt and add `-f ip.txt` to the cfst command line.
  4. Check basic reachability of the speed-test URL (default uses a Cloudflare-hosted file) from that machine/browser.
  5. If filtering is intentional, accept the skip: rerun on a schedule (Task Scheduler) so a later run with a working pool updates DNS.

Example fix

:: before
echo.|cfst.exe -o "result_ddns.txt"
if not exist result_ddns.txt (
    echo.
    echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
    goto :END
)

:: after — explicit args and a fallback second attempt with looser speed limit
echo.|cfst.exe -f ip.txt -tl 250 -sl 2 -o "result_ddns.txt"
if not exist result_ddns.txt (
    echo.|cfst.exe -f ip.txt -tl 250 -o "result_ddns.txt"
)
if not exist result_ddns.txt (
    echo.
    echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
    goto :END
)
Defensive patterns

Strategy: validation

Validate before calling

:: Pre-flight for cfst_ddns.bat
@echo off
if not exist cfst.exe (
    echo cfst.exe not found in current directory & exit /b 1
)
for %%A in (ip.txt) do if %%~zA EQU 0 (
    echo ip.txt is empty - refresh the IP pool & exit /b 1
)
:: dry run to confirm at least one IP passes current filters
cfst.exe -f ip.txt -tl 250 -sl 2 -o probe.txt >nul 2>&1
if not exist probe.txt (
    echo Filters too strict: 0 IPs passed - lower -sl or raise -tl & exit /b 1
)

Prevention

When it happens

Trigger: cfst.exe runs but writes no result_ddns.txt because: every IP in the default IP pool failed the latency test (-tl threshold), the download-speed filter (-sl, e.g. -sl 5) rejected all survivors because the test URL was slow/unreachable, IP versions mismatched (testing an ipv6.txt pool without -f or on a network without IPv6), or cfst.exe itself never executed (missing exe, AV quarantine, not in the working directory).

Common situations: Users raising -sl/-tl too high for their region; a stale or exhausted built-in IP pool after CF routing shifts; running the .bat from a different working directory so the file lands elsewhere; antivirus silently removing cfst.exe; ISP throttling the speed-test download making all IPs fall below the lower limit.

Related errors


AI-assisted analysis of XIU2/CloudflareSpeedTest@1da0c025d7 (2026-08-15). Data as JSON: /api/errors/80ad2d49b33b4f06. Report an issue: GitHub.