mirror of
https://github.com/XIU2/CloudflareSpeedTest.git
synced 2026-03-07 07:05:56 +08:00
调整 CloudflareST 为简写的 cfst
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
# XIU2/CloudflareSpeedTest - Script(脚本)
|
||||
|
||||
这里都是一些通过调用 **CloudflareST** 并**扩展实现更多个性化功能**的脚本。
|
||||
这里都是一些通过调用 **CFST** 并**扩展实现更多个性化功能**的脚本。
|
||||
|
||||
****
|
||||
> [!TIP]
|
||||
> 我之所以将 CloudflareST 制作为一个**命令行程序**,就是考虑到**通用性**,因为毕竟不可能把所有需求都塞到软件内(特别是一些**个性化、小众**的需求),这样增加维护难度和精力不说,还会导致软件异常臃肿(`“变成我讨厌的样子”`),而命令行程序的优势之一就在于**可以很方便的和其他软件、脚本搭配使用**。
|
||||
> 我之所以将 CFST 制作为一个**命令行程序**,就是考虑到**通用性**,因为毕竟不可能把所有需求都塞到软件内(特别是一些**个性化、小众**的需求),这样增加维护难度和精力不说,还会导致软件异常臃肿(`“变成我讨厌的样子”`),而命令行程序的优势之一就在于**可以很方便的和其他软件、脚本搭配使用**。
|
||||
|
||||
比如像下面这些我写的几个脚本,就是把一些需求以外置脚本方式实现。
|
||||
|
||||
> 即脚本调用 CloudflareST 测速并获取结果,然后***按照自己的需求自由决定***如何处理得到的测速结果(比如修改 Hosts 等)。
|
||||
> 即脚本调用 CFST 测速并获取结果,然后***按照自己的需求自由决定***如何处理得到的测速结果(比如修改 Hosts 等)。
|
||||
|
||||
总的来说,我写的这几个脚本都比较简单,功能也很单一,除了满足部分用户的需求外,***更像是一个 CloudflareST 与脚本搭配使用的示例参考***,对于一些会写脚本、软件的用户来说,完全可以**自给自足**来实现一些个性化需求。
|
||||
总的来说,我写的这几个脚本都比较简单,功能也很单一,除了满足部分用户的需求外,***更像是一个 CFST 与脚本搭配使用的示例参考***,对于一些会写脚本、软件的用户来说,完全可以**自给自足**来实现一些个性化需求。
|
||||
|
||||
当然,如果你有一些自用好用的脚本也可以通过 [**Issues**](https://github.com/XIU2/CloudflareSpeedTest/issues)、[**Discussions**](https://github.com/XIU2/CloudflareSpeedTest/discussions) 或 **Pull requests** 发给我添加到这里让更多人用到!
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
****
|
||||
## 📑 cfst_hosts.sh / cfst_hosts.bat (已内置压缩包)
|
||||
|
||||
脚本会运行 CloudflareST 获得最快 IP,并替换掉 Hosts 文件中的旧 CDN IP。
|
||||
脚本会运行 CFST 获得最快 IP,并替换掉 Hosts 文件中的旧 CDN IP。
|
||||
|
||||
> **作者:**[@XIU2](https://github.com/xiu2)
|
||||
> **使用说明/问题反馈:https://github.com/XIU2/CloudflareSpeedTest/discussions/312**
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
## 📑 cfst_3proxy.bat (已内置压缩包)
|
||||
|
||||
脚本会运行 CloudflareST 测速后获取最快 IP 并替换 3Proxy 配置文件中的旧 Cloudflare CDN IP。
|
||||
脚本会运行 CFST 测速后获取最快 IP 并替换 3Proxy 配置文件中的旧 Cloudflare CDN IP。
|
||||
可以把所有 Cloudflare CDN IP 都重定向至最快 IP,实现一劳永逸的加速所有使用 Cloudflare CDN 的网站(不需要一个个添加域名到 Hosts 了)。
|
||||
|
||||
> **作者:**[@XIU2](https://github.com/xiu2)
|
||||
@@ -88,7 +88,7 @@
|
||||
## 📑 cfst_dnspod.sh
|
||||
|
||||
如果你的域名托管在 **dnspod**,则可以通过 dnspod 官方提供的 API 来自动更新域名解析记录!
|
||||
脚本会运行 CloudflareST 测速获得最快 IP,并通过 Cloudflare API 来更新域名解析记录为这个最快 IP。
|
||||
脚本会运行 CFST 测速获得最快 IP,并通过 Cloudflare API 来更新域名解析记录为这个最快 IP。
|
||||
|
||||
> **作者:**[@imashen](https://github.com/imashen)
|
||||
> **使用说明/问题反馈:https://github.com/XIU2/CloudflareSpeedTest/pull/533**
|
||||
@@ -108,7 +108,7 @@
|
||||
## 📑 cfst_ddns.sh / cfst_ddns.bat
|
||||
|
||||
如果你的域名托管在 **Cloudflare**,则可以通过 Cloudflare 官方提供的 API 来自动更新域名解析记录!
|
||||
脚本会运行 CloudflareST 测速获得最快 IP,并通过 Cloudflare API 来更新域名解析记录为这个最快 IP。
|
||||
脚本会运行 CFST 测速获得最快 IP,并通过 Cloudflare API 来更新域名解析记录为这个最快 IP。
|
||||
|
||||
> **作者:**[@XIU2](https://github.com/xiu2)
|
||||
> **使用说明/问题反馈:https://github.com/XIU2/CloudflareSpeedTest/discussions/481**
|
||||
@@ -143,7 +143,7 @@
|
||||
|
||||
## 📑 cfst_dnsmasq.sh
|
||||
|
||||
脚本会运行 CloudflareST 测速后获取最快 IP 并替换 dnsmasq 配置文件中的旧 Cloudflare CDN IP。
|
||||
脚本会运行 CFST 测速后获取最快 IP 并替换 dnsmasq 配置文件中的旧 Cloudflare CDN IP。
|
||||
|
||||
> **作者:**[@Sving1024](https://github.com/Sving1024)
|
||||
> **使用说明/问题反馈:https://github.com/XIU2/CloudflareSpeedTest/discussions/566**
|
||||
|
||||
@@ -36,7 +36,7 @@ if '%errorlevel%' NEQ '0' (
|
||||
|
||||
::<3A><><EFBFBD><EFBFBD> nowip_3proxy.txt <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>иýű<C3BD>
|
||||
if not exist "nowip_3proxy.txt" (
|
||||
echo <20>ýű<C3BD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ CloudflareST <20><><EFBFBD>ٺ<EFBFBD><D9BA><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> IP <20><><EFBFBD>滻 3Proxy <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD> Cloudflare CDN IP<49><50>
|
||||
echo <20>ýű<C3BD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ CFST <20><><EFBFBD>ٺ<EFBFBD><D9BA><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> IP <20><><EFBFBD>滻 3Proxy <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD> Cloudflare CDN IP<49><50>
|
||||
echo <20><><EFBFBD><EFBFBD><D4B0><EFBFBD><EFBFBD><EFBFBD> Cloudflare CDN IP <20><><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50>ʵ<EFBFBD><CAB5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵļ<DDB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> Cloudflare CDN <20><><EFBFBD><EFBFBD>վ<EFBFBD><D5BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫһ<D2AA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Hosts <20>ˣ<EFBFBD><CBA3><EFBFBD>
|
||||
echo ʹ<><CAB9>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>https://github.com/XIU2/CloudflareSpeedTest/discussions/71
|
||||
echo.
|
||||
@@ -55,14 +55,14 @@ echo
|
||||
:RESET
|
||||
|
||||
|
||||
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD> CloudflareST <20><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD>echo.| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>س<EFBFBD><D8B3>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><F2A3A8B2><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> -p 0 <20><><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>
|
||||
echo.|CloudflareST.exe -o "result_3proxy.txt"
|
||||
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD> CFST <20><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD>echo.| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>س<EFBFBD><D8B3>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><F2A3A8B2><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> -p 0 <20><><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>
|
||||
echo.|cfst.exe -o "result_3proxy.txt"
|
||||
|
||||
|
||||
:: <20>жϽ<D0B6><CFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 0
|
||||
if not exist result_3proxy.txt (
|
||||
echo.
|
||||
echo CloudflareST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
echo CFST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
goto :STOP
|
||||
)
|
||||
|
||||
@@ -79,24 +79,24 @@ for /f "tokens=1 delims=," %%i in (result_3proxy.txt) do (
|
||||
:: <20>жϸոջ<D5B8>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20>Ƿ<EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><D5A3>Լ<EFBFBD><D4BC>Ƿ<EFBFBD><C7B7>;<EFBFBD> IP һ<><D2BB>
|
||||
if "%bestip%"=="" (
|
||||
echo.
|
||||
echo CloudflareST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
echo CFST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
goto :STOP
|
||||
)
|
||||
if "%bestip%"=="%nowip%" (
|
||||
echo.
|
||||
echo CloudflareST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
echo CFST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
goto :STOP
|
||||
)
|
||||
|
||||
|
||||
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD> "<22>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><>һֱѭ<D6B1><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ" <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
:: <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><>û<EFBFBD>ҵ<EFBFBD>ʱ<EFBFBD><CAB1>CloudflareST <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD>
|
||||
:: <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><>û<EFBFBD>ҵ<EFBFBD>ʱ<EFBFBD><CAB1>CFST <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD>
|
||||
:: <20><><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ָ<EFBFBD><D6B8> -sl <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>뿪ͷ<EBBFAA><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> :: ð<><C3B0>ע<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>10 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 11<31><31>
|
||||
::set /a v=0
|
||||
::for /f %%a in ('type result_3proxy.txt') do set /a v+=1
|
||||
::if %v% GTR 11 (
|
||||
:: echo.
|
||||
:: echo CloudflareST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD>...
|
||||
:: echo CFST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD>...
|
||||
:: goto :RESET
|
||||
::)
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
@echo off
|
||||
Setlocal Enabledelayedexpansion
|
||||
|
||||
:: 这里可以自己添加、修改 CloudflareST 的运行参数,echo.| 的作用是自动回车退出程序(不再需要加上 -p 0 参数了)
|
||||
echo.|CloudflareST.exe -o "result_ddns.txt"
|
||||
:: 这里可以自己添加、修改 CFST 的运行参数,echo.| 的作用是自动回车退出程序(不再需要加上 -p 0 参数了)
|
||||
echo.|cfst.exe -o "result_ddns.txt"
|
||||
|
||||
:: 判断结果文件是否存在,如果不存在说明结果为 0
|
||||
if not exist result_ddns.txt (
|
||||
echo.
|
||||
echo CloudflareST 测速结果 IP 数量为 0,跳过下面步骤...
|
||||
echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
|
||||
goto :END
|
||||
)
|
||||
|
||||
@@ -23,7 +23,7 @@ for /f "tokens=1 delims=," %%i in (result_ddns.txt) do (
|
||||
Echo %%i
|
||||
if "%%i"=="" (
|
||||
echo.
|
||||
echo CloudflareST 测速结果 IP 数量为 0,跳过下面步骤...
|
||||
echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
|
||||
goto :END
|
||||
)
|
||||
:: API 密钥方式(全局权限)
|
||||
|
||||
@@ -32,15 +32,15 @@ _READ() {
|
||||
}
|
||||
|
||||
_UPDATE() {
|
||||
# 这里可以自己添加、修改 CloudflareST 的运行参数
|
||||
./CloudflareST -o "result_ddns.txt"
|
||||
# 这里可以自己添加、修改 CFST 的运行参数
|
||||
./cfst -o "result_ddns.txt"
|
||||
|
||||
# 判断结果文件是否存在,如果不存在说明结果为 0
|
||||
[[ ! -e "result_ddns.txt" ]] && echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0
|
||||
[[ ! -e "result_ddns.txt" ]] && echo "CFST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0
|
||||
|
||||
CONTENT=$(sed -n "2,1p" result_ddns.txt | awk -F, '{print $1}')
|
||||
if [[ -z "${CONTENT}" ]]; then
|
||||
echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..."
|
||||
echo "CFST 测速结果 IP 数量为 0,跳过下面步骤..."
|
||||
exit 0
|
||||
fi
|
||||
# 如果 EMAIL 变量是空的,那么就代表要使用 API 令牌方式
|
||||
|
||||
@@ -12,25 +12,25 @@ _UPDATE() {
|
||||
echo -e "开始测速..."
|
||||
BESTIP=""
|
||||
BESTIP_IPV6="::"
|
||||
# 这里可以自己添加、修改 CloudflareST 的运行参数
|
||||
./CloudflareST -o "result_hosts.txt"
|
||||
# 这里可以自己添加、修改 CFST 的运行参数
|
||||
./cfst -o "result_hosts.txt"
|
||||
# 需要测速 IPv6 请取消注释
|
||||
#./CloudflareST -o "result_hosts_ipv6.txt" -f ipv6.txt
|
||||
#./cfst -o "result_hosts_ipv6.txt" -f ipv6.txt
|
||||
|
||||
# 如果需要 "找不到满足条件的 IP 就一直循环测速下去",那么可以将下面的两个 exit 0 改为 _UPDATE 即可
|
||||
[[ ! -e "result_hosts.txt" ]] && echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0
|
||||
[[ ! -e "result_hosts.txt" ]] && echo "CFST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0
|
||||
|
||||
# 下面这行代码是 "找不到满足条件的 IP 就一直循环测速下去" 才需要的代码
|
||||
# 考虑到当指定了下载速度下限,但一个满足全部条件的 IP 都没找到时,CloudflareST 就会输出所有 IP 结果
|
||||
# 考虑到当指定了下载速度下限,但一个满足全部条件的 IP 都没找到时,CFST 就会输出所有 IP 结果
|
||||
# 因此当你指定 -sl 参数时,需要移除下面这段代码开头的 # 井号注释符,来做文件行数判断(比如下载测速数量:10 个,那么下面的值就设在为 11)
|
||||
#[[ $(cat result_hosts.txt|wc -l) > 11 ]] && echo "CloudflareST 测速结果没有找到一个完全满足条件的 IP,重新测速..." && _UPDATE
|
||||
#[[ $(cat result_hosts.txt|wc -l) > 11 ]] && echo "CFST 测速结果没有找到一个完全满足条件的 IP,重新测速..." && _UPDATE
|
||||
|
||||
BESTIP=$(sed -n "2,1p" result_hosts.txt | awk -F, '{print $1}')
|
||||
# 需要测速 IPv6 请取消注释
|
||||
#BESTIP_IPV6=$(sed -n "2,1p" result_hosts_ipv6.txt | awk -F, '{print $1}')
|
||||
|
||||
if [[ -z "${BESTIP}" ]]; then
|
||||
echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..."
|
||||
echo "CFST 测速结果 IP 数量为 0,跳过下面步骤..."
|
||||
exit 0
|
||||
fi
|
||||
echo ${BESTIP} > nowip_hosts.txt
|
||||
|
||||
@@ -45,8 +45,8 @@ update_dns_record() {
|
||||
curl -s -X POST -d "login_token=$dnspod_token&format=json&domain=$dnspod_domain&record_id=$record_id&sub_domain=$dnspod_record&record_type=$record_type&record_line=默认&value=$ip_address" "$dnspod_api_url/Record.Modify"
|
||||
}
|
||||
|
||||
# 运行 CloudflareST v4
|
||||
./CloudflareST -f ip.txt -n 500 -o result4.csv
|
||||
# 运行 CFST v4
|
||||
./cfst -f ip.txt -n 500 -o result4.csv
|
||||
|
||||
# 读取 CSV 文件并提取优选 IPv4 地址
|
||||
preferred_ipv4=$(awk -F, 'NR==2 {print $1}' result4.csv)
|
||||
@@ -75,8 +75,8 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
# 运行 CloudflareST v6
|
||||
./CloudflareST -f ipv6.txt -n 500 -o result6.csv
|
||||
# 运行 CFST v6
|
||||
./cfst -f ipv6.txt -n 500 -o result6.csv
|
||||
|
||||
# 读取 CSV 文件并提取优选 IPv6 地址
|
||||
preferred_ipv6=$(awk -F, 'NR==2 {print $1}' result6.csv)
|
||||
|
||||
@@ -36,7 +36,7 @@ if '%errorlevel%' NEQ '0' (
|
||||
|
||||
::<3A><><EFBFBD><EFBFBD> nowip_hosts.txt <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>иýű<C3BD>
|
||||
if not exist "nowip_hosts.txt" (
|
||||
echo <20>ýű<C3BD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ CloudflareST <20><><EFBFBD>ٺ<EFBFBD><D9BA><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> IP <20><><EFBFBD>滻 Hosts <20>е<EFBFBD> Cloudflare CDN IP<49><50>
|
||||
echo <20>ýű<C3BD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ CFST <20><><EFBFBD>ٺ<EFBFBD><D9BA><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> IP <20><><EFBFBD>滻 Hosts <20>е<EFBFBD> Cloudflare CDN IP<49><50>
|
||||
echo ʹ<><CAB9>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>https://github.com/XIU2/CloudflareSpeedTest/issues/42#issuecomment-768273768
|
||||
echo.
|
||||
echo <20><>һ<EFBFBD><D2BB>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>Ƚ<EFBFBD> Hosts <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cloudflare CDN IP ͳһ<CDB3><D2BB>Ϊһ<CEAA><D2BB> IP<49><50>
|
||||
@@ -55,14 +55,14 @@ echo
|
||||
:RESET
|
||||
|
||||
|
||||
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD> CloudflareST <20><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD>echo.| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>س<EFBFBD><D8B3>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><F2A3A8B2><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> -p 0 <20><><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>
|
||||
echo.|CloudflareST.exe -o "result_hosts.txt"
|
||||
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD> CFST <20><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD>echo.| <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>س<EFBFBD><D8B3>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><F2A3A8B2><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> -p 0 <20><><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>
|
||||
echo.|cfst.exe -o "result_hosts.txt"
|
||||
|
||||
|
||||
:: <20>жϽ<D0B6><CFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 0
|
||||
if not exist result_hosts.txt (
|
||||
echo.
|
||||
echo CloudflareST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
echo CFST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
goto :STOP
|
||||
)
|
||||
|
||||
@@ -79,24 +79,24 @@ for /f "tokens=1 delims=," %%i in (result_hosts.txt) do (
|
||||
:: <20>жϸոջ<D5B8>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20>Ƿ<EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><D5A3>Լ<EFBFBD><D4BC>Ƿ<EFBFBD><C7B7>;<EFBFBD> IP һ<><D2BB>
|
||||
if "%bestip%"=="" (
|
||||
echo.
|
||||
echo CloudflareST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
echo CFST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
goto :STOP
|
||||
)
|
||||
if "%bestip%"=="%nowip%" (
|
||||
echo.
|
||||
echo CloudflareST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
echo CFST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD> IP <20><><EFBFBD><EFBFBD>Ϊ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>沽<EFBFBD><E6B2BD>...
|
||||
goto :STOP
|
||||
)
|
||||
|
||||
|
||||
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD> "<22>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><>һֱѭ<D6B1><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ" <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
:: <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><>û<EFBFBD>ҵ<EFBFBD>ʱ<EFBFBD><CAB1>CloudflareST <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD>
|
||||
:: <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><>û<EFBFBD>ҵ<EFBFBD>ʱ<EFBFBD><CAB1>CFST <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD>
|
||||
:: <20><><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ָ<EFBFBD><D6B8> -sl <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>뿪ͷ<EBBFAA><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> :: ð<><C3B0>ע<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>10 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 11<31><31>
|
||||
::set /a v=0
|
||||
::for /f %%a in ('type result_hosts.txt') do set /a v+=1
|
||||
::if %v% GTR 11 (
|
||||
:: echo.
|
||||
:: echo CloudflareST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD>...
|
||||
:: echo CFST <20><><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD>...
|
||||
:: goto :RESET
|
||||
::)
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ _CHECK() {
|
||||
while true
|
||||
do
|
||||
if [[ ! -e "nowip_hosts.txt" ]]; then
|
||||
echo -e "该脚本的作用为 CloudflareST 测速后获取最快 IP 并替换 Hosts 中的 Cloudflare CDN IP。\n使用前请先阅读:https://github.com/XIU2/CloudflareSpeedTest/issues/42#issuecomment-768273848"
|
||||
echo -e "该脚本的作用为 CFST 测速后获取最快 IP 并替换 Hosts 中的 Cloudflare CDN IP。\n使用前请先阅读:https://github.com/XIU2/CloudflareSpeedTest/issues/42#issuecomment-768273848"
|
||||
echo -e "第一次使用,请先将 Hosts 中所有 Cloudflare CDN IP 统一改为一个 IP。"
|
||||
read -e -p "输入该 Cloudflare CDN IP 并回车(后续不再需要该步骤):" NOWIP
|
||||
if [[ ! -z "${NOWIP}" ]]; then
|
||||
@@ -31,21 +31,21 @@ _UPDATE() {
|
||||
echo -e "开始测速..."
|
||||
NOWIP=$(head -1 nowip_hosts.txt)
|
||||
|
||||
# 这里可以自己添加、修改 CloudflareST 的运行参数
|
||||
./CloudflareST -o "result_hosts.txt"
|
||||
# 这里可以自己添加、修改 CFST 的运行参数
|
||||
./cfst -o "result_hosts.txt"
|
||||
|
||||
# 如果需要 "找不到满足条件的 IP 就一直循环测速下去",那么可以将下面的两个 exit 0 改为 _UPDATE 即可
|
||||
[[ ! -e "result_hosts.txt" ]] && echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0
|
||||
[[ ! -e "result_hosts.txt" ]] && echo "CFST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0
|
||||
|
||||
# 下面这行代码是 "找不到满足条件的 IP 就一直循环测速下去" 才需要的代码
|
||||
# 考虑到当指定了下载速度下限,但一个满足全部条件的 IP 都没找到时,CloudflareST 就会输出所有 IP 结果
|
||||
# 考虑到当指定了下载速度下限,但一个满足全部条件的 IP 都没找到时,CFST 就会输出所有 IP 结果
|
||||
# 因此当你指定 -sl 参数时,需要移除下面这段代码开头的 # 井号注释符,来做文件行数判断(比如下载测速数量:10 个,那么下面的值就设在为 11)
|
||||
#[[ $(cat result_hosts.txt|wc -l) > 11 ]] && echo "CloudflareST 测速结果没有找到一个完全满足条件的 IP,重新测速..." && _UPDATE
|
||||
#[[ $(cat result_hosts.txt|wc -l) > 11 ]] && echo "CFST 测速结果没有找到一个完全满足条件的 IP,重新测速..." && _UPDATE
|
||||
|
||||
|
||||
BESTIP=$(sed -n "2,1p" result_hosts.txt | awk -F, '{print $1}')
|
||||
if [[ -z "${BESTIP}" ]]; then
|
||||
echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..."
|
||||
echo "CFST 测速结果 IP 数量为 0,跳过下面步骤..."
|
||||
exit 0
|
||||
fi
|
||||
echo ${BESTIP} > nowip_hosts.txt
|
||||
|
||||
@@ -12,7 +12,7 @@ _CHECK() {
|
||||
while true
|
||||
do
|
||||
if [[ ! -e "nowip_hosts.txt" ]]; then
|
||||
echo -e "该脚本的作用为 CloudflareST 测速后获取最快 IP 并替换 Hosts 中的 Cloudflare CDN IP。\n使用前请先阅读:https://github.com/XIU2/CloudflareSpeedTest/issues/42#issuecomment-768273848"
|
||||
echo -e "该脚本的作用为 CFST 测速后获取最快 IP 并替换 Hosts 中的 Cloudflare CDN IP。\n使用前请先阅读:https://github.com/XIU2/CloudflareSpeedTest/issues/42#issuecomment-768273848"
|
||||
echo -e "第一次使用,请先将 Hosts 中所有 Cloudflare CDN IP 统一改为一个 IP。"
|
||||
read -e -p "输入该 Cloudflare CDN IP 并回车(后续不再需要该步骤):" NOWIP
|
||||
if [[ ! -z "${NOWIP}" ]]; then
|
||||
@@ -31,21 +31,21 @@ _UPDATE() {
|
||||
echo -e "开始测速..."
|
||||
NOWIP=$(head -1 nowip_hosts.txt)
|
||||
|
||||
# 这里可以自己添加、修改 CloudflareST 的运行参数
|
||||
./CloudflareST -o "result_hosts.txt"
|
||||
# 这里可以自己添加、修改 CFST 的运行参数
|
||||
./cfst -o "result_hosts.txt"
|
||||
|
||||
# 如果需要 "找不到满足条件的 IP 就一直循环测速下去",那么可以将下面的两个 exit 0 改为 _UPDATE 即可
|
||||
[[ ! -e "result_hosts.txt" ]] && echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0
|
||||
[[ ! -e "result_hosts.txt" ]] && echo "CFST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0
|
||||
|
||||
# 下面这行代码是 "找不到满足条件的 IP 就一直循环测速下去" 才需要的代码
|
||||
# 考虑到当指定了下载速度下限,但一个满足全部条件的 IP 都没找到时,CloudflareST 就会输出所有 IP 结果
|
||||
# 考虑到当指定了下载速度下限,但一个满足全部条件的 IP 都没找到时,CFST 就会输出所有 IP 结果
|
||||
# 因此当你指定 -sl 参数时,需要移除下面这段代码开头的 # 井号注释符,来做文件行数判断(比如下载测速数量:10 个,那么下面的值就设在为 11)
|
||||
#[[ $(cat result_hosts.txt|wc -l) > 11 ]] && echo "CloudflareST 测速结果没有找到一个完全满足条件的 IP,重新测速..." && _UPDATE
|
||||
#[[ $(cat result_hosts.txt|wc -l) > 11 ]] && echo "CFST 测速结果没有找到一个完全满足条件的 IP,重新测速..." && _UPDATE
|
||||
|
||||
|
||||
BESTIP=$(sed -n "2,1p" result_hosts.txt | awk -F, '{print $1}')
|
||||
if [[ -z "${BESTIP}" ]]; then
|
||||
echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..."
|
||||
echo "CFST 测速结果 IP 数量为 0,跳过下面步骤..."
|
||||
exit 0
|
||||
fi
|
||||
echo ${BESTIP} > nowip_hosts.txt
|
||||
|
||||
Reference in New Issue
Block a user