license

## Network Quality Check Script - [网络质量体检脚本 (CN)](https://github.com/xykt/NetQuality) **Supported OS/Platform: Ubuntu | Debian | Linux Mint | Fedora | Red Hat Enterprise Linux (RHEL) | CentOS | Arch Linux | Manjaro | Alpine Linux | AlmaLinux | Rocky Linux | macOS | Anolis OS | Alibaba Cloud Linux | SUSE Linux | openSUSE | Void Linux | Windows (via Docker)** - Bilingual support: English & Chinese - Supports IPv4/IPv6 dual-stack queries - Well-formatted output for clear and concise display, optimized for screenshots - Seven key modules: BGP information, local policy, access information, three-network TCP large packet latency, three-network return routing, domestic speed test, and international interconnection - Base data sourced from *BGP.TOOLS* and *BGP.HE.NET* databases - Intuitive display of upstream and access information - Return latency tests for China Mainland’s 31 provinces/cities/autonomous regions via China Telecom, China Unicom, and China Mobile - Speed test for China Mainland’s three major ISPs (including the Greater Bay Area) based on *SPEEDTEST.NET* - Full China Telecom/Unicom/Mobile return route display powered by *NextTrace* - Global speed and latency tests across five continents - Flexible test modes: latency mode, low data mode, selective section skipping - JSON output for big data analysis ##### Screenshots | IPv4 Test Result | IPv6 Test Result | | ---------------- | ---------------- | |![IPv4](https://github.com/xykt/NetQuality/raw/main/res/v4_en.png)|![IPv6](https://github.com/xykt/NetQuality/raw/main/res/v6_en.png)| | Latency Mode Test Result | Full Route Mode Test Result | | ---------------- | ---------------- | |![Ping](https://github.com/xykt/NetQuality/raw/main/res/ping_en.png)|![Route](https://github.com/xykt/NetQuality/raw/main/res/route_v4.png)| ## Usage ### Easy Mode: Run with Interactive Interface ![Net](https://github.com/xykt/ScriptMenu/raw/main/res/Net_EN.png) ##### Bash: ````bash bash <(curl -Ls https://Check.Place) -EN ```` ##### Docker: - Linux ````bash docker run --rm --net=host -it xykt/check -EN && docker rmi xykt/check > /dev/null 2>&1 ```` - Windows (CMD) ````bash docker run --rm --net=host -it xykt/check -EN & docker rmi xykt/check > NUL 2>&1 ```` ### Advanced Mode: Run with Parameters ![Help](https://github.com/xykt/NetQuality/raw/main/res/help.png) ##### Default dual-stack detection (Either): ```bash bash <(curl -Ls https://Net.Check.Place) -E bash <(curl -Ls https://Net.Check.Place) -l en ``` ##### IPv4-only test: ```bash bash <(curl -Ls https://Net.Check.Place) -E4 ``` ##### IPv6-only test: ```bash bash <(curl -Ls https://Net.Check.Place) -E6 ``` ##### Latency mode: ```bash bash <(curl -Ls https://Net.Check.Place) -EP ``` ##### Low data mode: ```bash bash <(curl -Ls https://Net.Check.Place) -EL ``` ##### Full route mode (TCP result in Chinese): ```bash bash <(curl -Ls https://Net.Check.Place) -E -R [Province] ``` Test Beijing & Shanghai & Guangdong by default: ```bash bash <(curl -Ls https://Net.Check.Place) -E -R ``` Specify parameters to detect the corresponding province (Any of the following): ```bash bash <(curl -Ls https://Net.Check.Place) -E -R 桂 bash <(curl -Ls https://Net.Check.Place) -E -R 广西 bash <(curl -Ls https://Net.Check.Place) -E -R 广西壮族自治区 bash <(curl -Ls https://Net.Check.Place) -E -R GX bash <(curl -Ls https://Net.Check.Place) -E -R gx ``` ##### Skip specific sections: ```bash bash <(curl -Ls https://Net.Check.Place) -E -S 1234567 ``` ##### Bilingual support: ```bash bash <(curl -Ls https://Net.Check.Place) -l cn|en ``` ##### JSON output ([Example Output](https://github.com/xykt/NetQuality/blob/main/res/output.json)): ```bash bash <(curl -Ls https://Net.Check.Place) -Ej ``` ##### Output report to file in ANSI/JSON/Text format: ````bash bash <(curl -Ls https://Net.Check.Place) -o /path/to/file.ansi bash <(curl -Ls https://Net.Check.Place) -o /path/to/file.json bash <(curl -Ls https://Net.Check.Place) -o /path/to/file.txtoranyother ```` ##### Skip checking OS and dependencies: ```bash bash <(curl -Ls https://Net.Check.Place) -En ``` ##### Auto-install dependencies: ```bash bash <(curl -Ls https://Net.Check.Place) -Ey ``` ##### Display full IP addresses in the report: ```bash bash <(curl -Ls https://Net.Check.Place) -Ef ``` ##### privacy mode - Disable online report link: ````bash bash <(curl -Ls https://Net.Check.Place) -p ```` ##### Docker (supports runtime arguments; insert them before the ```&```): - Linux ````bash docker run --rm --net=host -it xykt/netquality -E && docker rmi xykt/netquality > /dev/null 2>&1 ```` - Windows (CMD) ````cmd docker run --rm --net=host -it xykt/netquality -E & docker rmi xykt/netquality > NUL 2>&1 ```` ## Script Updates 2025/08/03 00:00 Add Docker support 2025/08/01 15:15 Add -p for privacy mode, which disables online report links 2025/07/30 16:50 Replace all HTTP requests with HTTPS to improve script security 2025/05/11 14:00 Add report SVG image sharing link and fix some layout problems 2025/04/23 18:00 Add -o to output report to file in ANSI/JSON/Text format, fixed the occasional stuck issue in routing test 2025/04/21 22:15 Collapse routing duplicate information for full routing mode 2025/04/21 00:00 Fix macOS compatibility issues and improve script robustness 2025/04/20 21:00 Fixed connectivity issues with CN IPs 2025/03/28 00:50 Add -R Full Route Mode, add international delay test to Low Data Mode, fix bugs 2025/03/13 22:40 Add -n for no checking OS & dependencies 2025/03/12 17:00 Script Released ## Contributions **Server Sponsors​ *(No ranking implied)*:** | Sponsor | Logo | Link | | - | - | - | | V.PS | ![vps_logo](https://raw.githubusercontent.com/xykt/NetQuality/main/res/sponsor/logo_vps.png) | [https://v.ps](https://v.ps)| | BAGE | ![bage_logo](https://raw.githubusercontent.com/xykt/NetQuality/main/res/sponsor/logo_bage.png) | [https://bagevm.com](https://bagevm.com)| | LisaHost
丽萨主机 | ![lisa_logo](https://raw.githubusercontent.com/xykt/NetQuality/main/res/sponsor/logo_lisa.png) | [https://lisahost.com](https://lisahost.com)| | DreamCloud | ![dreamcloud_logo](https://raw.githubusercontent.com/xykt/NetQuality/main/res/sponsor/logo_dreamcloud.png) | [https://as211392.com](https://as211392.com)| | VIRCS
威尔克斯 | ![vircs_logo](https://raw.githubusercontent.com/xykt/NetQuality/main/res/sponsor/logo_vircs.png) | [https://vircs.com](https://www.vircs.com/promotion?code=6)| | RapidProxy
`ISP IP` | ![rapidproxy_logo](https://raw.githubusercontent.com/xykt/NetQuality/main/res/sponsor/logo_rapidproxy.png) | [https://rapidproxy.io](https://www.rapidproxy.io/?ref=gitipquality)| ##### *E-Mail: sponsor@check.place Telegram Bot: https://t.me/xythebot* **Only accepting merchants with long-term stable operations and good reputation* **Acknowledgments:** - Thanks to the NextTrace team​ ([Official Site](https://www.nxtrace.org/), [GitHub](https://github.com/nxtrace/NTrace-core)) for providing a stable and reliable ​three-network return route testing tool. - ​Thanks to [Speedtest.net](https://www.speedtest.net/) and [Speedtest® CLI​](https://www.speedtest.net/apps/cli), which is currently the ​only available command-line three-network speed testing tool​ in mainland China. - Special thanks to [GlobalSign@Nodeseek](https://www.nodeseek.com/space/5813#/general) for providing a stable and reliable three-network test address, laying a solid foundation for one of the script's most important features. - Thanks to [Sherlock@Nodeseek](https://www.nodeseek.com/space/13352#/general) for valuable suggestions on functionality and aesthetics. - Thanks to [酒神@Nodeseek](https://www.nodeseek.com/space/9#/general) for technical support and valuable feedback. - Thanks to Si for important recommendations on script functionality and formatting. - Thanks to Kakan for providing valuable reference suggestions. **Stars History:** ![Stargazers over time](https://starchart.cc/xykt/NetQuality.svg?background=%23FFFFFF&axis=%23333333&line=%2377ff77) **Daily Runs History:** ![daily_runs_history](https://hits.xykt.de/history/net.svg?days=46&chartType=bar&title=Daily%20Runs%20of%20Network%20Quality%20Script&width=1024&height=400&color=steelblue)