# CFData-Web Review: Cloudflare IP Testing from Web or CLI

> CFData-Web is a Go-based Cloudflare IP scanning and filtering tool with a local Web interface, CLI workflows, speed testing, exports, and GitHub uploads. It fits users who need to test official or custom IP and domain targets, while its GPL-3.0 license and manual configuration model require attention before adoption.

**PoemMisty/CFData-WEB** — CFData-Web 是一个基于 Go 开发的 Cloudflare IP 测试与筛选工具

- Repository: https://github.com/PoemMisty/CFData-WEB
- Website: https://cfdata-demo.cce.de5.net
- Stars: 2,250 · Forks: 468
- Language: HTML
- License: GPL-3.0
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/poemmisty-cfdata-web

## What CFData-Web Is Built to Measure

CFData-Web addresses a specific network testing problem: finding and filtering Cloudflare addresses by latency and transfer speed. The README identifies its users as people who need either an official Cloudflare address test or a custom target test, with results available through either a browser-based Web interface or command-line workflows. Official mode scans Cloudflare IPv4 and IPv6 ranges, then allows further testing by data center. Non-standard mode accepts IP addresses, domains, and ports from a local txt or csv file or from a network URL.

The project is not a general-purpose network monitoring suite as described in the README. Its documented scope is scanning, latency comparison, speed testing, threshold filtering, result export, and optional GitHub upload. It also provides an Android WebView shell in an APK, but the repository documentation gives no separate APK setup procedure. The distinction matters for adoption because CFData-Web is organized around selecting a set of candidate addresses, measuring them, and exporting the results. It does not present itself as a browser-wide download manager or a continuous service-level monitoring platform.

The project is licensed under GPL-3.0 or later. That license has implications for redistribution and modification, although this review does not provide legal advice. The README also states that the program is intended for learning and research, asks users to delete it within 24 hours after download, and places responsibility for legal compliance on the user.

## Web and CLI Data Paths

The Web interface begins with a scan-method selector. TCPing is the default and measures TCP handshake latency. HTTPing measures HTTP time to first byte, so its numbers are not directly comparable with TCPing results. The documentation assigns different display multipliers to HTTPing values, using x1.3 for non-TLS HTTP and x4.0 for TLS HTTPS. These multipliers are described as reference levels, not precise conversions. A user comparing saved results should keep the scan mode fixed.

In official mode, the documented flow is to choose IPv4 or IPv6, set the test port, scan concurrency, and latency threshold, start the scan, and then select a data center for detailed testing. Detailed results can be speed-tested individually or in batches. In non-standard mode, a local txt or csv file or a network URL supplies the targets. The application can apply a fallback port, TLS settings, a result limit, speed-test threads, and speed thresholds before displaying results in the table.

The CLI mirrors these paths. `-cli` opens an interactive menu, `-cli qs` starts from saved configuration, and `-cli -参数…` runs directly with command-line parameters. Configuration values for official and non-standard scanning are kept independent, as are their speed-test URLs. The CLI wizard can save a template, while later versions attempt configuration migration. The repository includes Go module files and application directories, but the README directs users to release binaries rather than documenting a source-build command, so a reproducible build process is not established in the documentation.

## First Local Web and CLI Run

The documented starting point is the Releases page. Download the binary for the target platform, run it without CLI arguments to start the Web service, and open the address printed by the program. The README gives `http://localhost:13335` as the default service address. The online demonstration at `https://cfdata-demo.cce.de5.net` uses browser-local virtual data and is intended only to preview the interface and interaction, so it is not a substitute for running the real backend.

For a Linux CLI launch, use the documented binary name and enter the menu:

```bash
./cfdata-linux-amd64 -cli
```

The menu includes starting with saved configuration, starting with custom parameters, editing configuration, managing scheduled tasks, and viewing help. On first use of a CLI configuration, the program generates a template and exits. Edit the generated configuration, then run the quick-start form when the saved values are ready. The README does not show the configuration filename or an editor command, so those details cannot be filled in without guessing.

For a direct official scan, the documented command selects IPv4, port 443, and automatic speed-test URL selection:

```bash
./cfdata-linux-amd64 -cli -mode official -offiptype 4 -offport 443 -offurl auto
```

For a custom local target file, the documented command enables TLS and five speed-test threads:

```bash
./cfdata-linux-amd64 -cli -mode nsb -nsbfile ip.txt -nsbtls=true -nsbspeedtest 5 -nsburl auto
```

The `ip.txt` file should contain supported target lines. Examples given in the README include an address with a port, an address without a port, and IPv6 notation. A missing port uses the fallback port, which is selected as 443 with TLS and 80 without TLS.

## Speed Tests, Thresholds, and Export Controls

CFData-Web separates latency filtering from transfer-speed testing. The common parameters include separate delay thresholds for official and non-standard scans, and the default speed-test URL is `auto`, which asks the backend to choose a built-in source. The Web interface also offers named choices such as Cloudflare, CM提供, and mobile-specific options, plus manual URL entry. CLI users can set either `-offurl` or `-nsburl` independently.

The measurement operation reads the response byte stream to calculate speed. It does not save the tested file locally. That design is useful when the objective is selecting an address by throughput, but it also means the selected URL and server response characteristics affect the result. The documentation does not specify how the automatic source is selected, so users who need repeatable comparisons should record the chosen URL rather than assume that every `auto` run uses the same endpoint.

Concurrency is a practical constraint. `-offthreads` controls official scan concurrency and `-nsbthreads` controls non-standard scan concurrency. `-nsbspeedtest` controls speed-test threads, and the README explicitly warns that multiple IPs running speed tests concurrently affect actual speed. It says an accurate measurement should use one thread. Filtering can use `-offdelay`, `-nsbdelay`, `-nsbspeedmin`, and `-nsbspeedlimit`. Exports can be CSV or TXT, with custom fields, IP-type filtering, and qualified-result filtering. Results can also be uploaded to GitHub, although the README does not document authentication, repository-selection, or retry behavior for that upload.

## Configuration, Scheduling, and Android Boundaries

The CLI includes a parameter setup wizard and saved configuration support. The documented configuration migration behavior is selective rather than a blanket replacement. If key names do not change, migration follows the new template silently. If old key names remain, an interactive prompt appears and only matching values are migrated. The original file is backed up as `.bak`. In a non-interactive environment, migration is skipped automatically. This can protect old values, but it also means an automated invocation may continue without completing the migration prompt.

Scheduled tasks are documented only for Linux systemd. The program can schedule daily, weekly, or monthly execution, enable startup behavior, and perform automatic rollback cleanup after failure. The unit file and logs are placed in the program directory. The README does not document the exact systemd commands, service file contents, rollback command, or log names, so operators cannot build a full service-management runbook from the README alone.

The Web settings menu can restore all defaults by clearing local cache files such as `ips-v4.txt`, `ips-v6.txt`, `locations.json`, and the ASN database. The documentation says a running task will not be cleaned directly, which avoids interrupting that task but leaves the user responsible for restarting or clearing cached state when needed. The Android WebView APK can run the built-in backend, yet the README provides no Android installation, permissions, or packaging instructions. Those omissions make desktop release binaries the clearer adoption path when the documented setup is sufficient.

## CFData-Web Compared with a Manual Speed-Test Workflow

A manual workflow would test addresses one at a time with separate TCP, HTTP, and download tools, then assemble results in a spreadsheet. CFData-Web differs by keeping candidate selection, latency testing, speed testing, filtering, and export in one application. Official mode also adds a data-center selection stage after the initial Cloudflare scan, while non-standard mode accepts local files or a network URL. Those are concrete workflow differences, not merely a claim that the tool is convenient.

The trade-off is control and interpretation. A manual process can make every endpoint, request, and timing rule explicit, but it requires more manual work and result handling. CFData-Web provides faster batch-oriented operation and saved parameters, but the automatic speed source is not documented, the two scan modes require separate interpretation, and concurrent speed tests can distort transfer measurements. The tool is therefore a better fit for repeated selection tasks than for a one-off test of a single known address, provided the operator controls scan mode, endpoint choice, and concurrency.

Maintenance is supported by the repository record. The repository is not archived, and the last push was on 2026-10-05. The README says the feature set has reached the author's expected state and that later updates will focus on maintenance and new features, with a lower iteration frequency. Recent release records include v1.8.3 on 2026-10-05, v1.8.2 on 2026-10-02, and v1.8.1 on 2026-10-02. Upgrade cost is therefore not described as a constant stream of changes, but users should still account for binary replacement, configuration migration prompts, local cache changes, and the possibility that older configuration keys are skipped in non-interactive runs.

## Conclusion

Adopt CFData-Web if you need a local Web and CLI workflow for scanning official Cloudflare IP ranges or testing custom IP and domain targets, especially when exports, threshold filtering, and saved configuration matter. Do not treat the online demo as a production tester, and do not adopt it if you need documented rollback or unattended migration behavior without reviewing the configuration workflow. Verify first that your Go or packaged runtime can run the downloaded binary, that the selected TCPing or HTTPing results match your measurement goal, and that your use complies with the GPL-3.0 license and the project's stated deletion requirement.

## FAQ

### How do I install and start CFData-Web?

The README directs users to download the appropriate binary from the Releases page and run it. Without CLI parameters, the program starts a local Web service, with the default address documented as http://localhost:13335.

### Can CFData-Web test custom IP addresses and domains?

Yes. Non-standard mode accepts a local txt or csv file or a network URL, then lets users configure fallback ports, TLS, concurrency, result limits, and speed-test settings.

### Should I use one speed-test thread in CFData-Web?

The README says that multiple IP addresses running speed tests concurrently affect actual speed and that accurate measurement should use one speed-test thread. Higher concurrency is more relevant to throughput under load than to precise single-address measurement.

## Sources

- [License: GPL-3.0](https://github.com/PoemMisty/CFData-WEB/blob/main/LICENSE)
- [PoemMisty/CFData-WEB on GitHub](https://github.com/PoemMisty/CFData-WEB)
- [Project website](https://cfdata-demo.cce.de5.net)
- [README](https://github.com/PoemMisty/CFData-WEB/blob/main/README.md)
- [Releases](https://github.com/PoemMisty/CFData-WEB/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/poemmisty-cfdata-web
