自动更新 Hosts 为最快 IP(Windows/Linux 脚本) · XIU2/CloudflareSpeedTest · Discussion #312
# Windows 脚本
首先下载批处理脚本:... 已内置压缩包中。
然后将其放到 CloudflareST 测速程序所在目录下,双击运行脚本,脚本会申请管理员权限,因此如果你没有关闭 UAC,就会看到用户账户控制提示,选择 [是] 继续。
如果想要在开启 UAC 的情况下不提示 UAC ,可以用我写的开源 UAC 白名单小工具 来解决(依然有管理员权限)。
「 点击查看 [不显示 CMD 黑窗口方式运行 bat 脚本方法] 」
考虑到有些人不想看到 CDM 的黑窗口,可以简单改为默认最小化运行 bat 脚本(只显示在任务栏)。
在 bat 文件头部 @echo off 下一行插入:if not "%~1"=="p" start /min cmd.exe /c %0 p&exit 保存即可。
插入代码后效果如下所示:
@echo off if not "%~1"=="p" start /min cmd.exe /c %0 p&exit Setlocal Enabledelayedexpansion ...
首次运行,脚本会提示以下内容:
该脚本的作用为 CloudflareST 测速后获取最快 IP 并替换 Hosts 中的所有 Cloudflare CDN IP。
第一次使用,请先将 Hosts 中所有 Cloudflare CDN IP 统一改为一个 IP。
输入该 Cloudflare CDN IP 并回车(后续不再需要该步骤):
因为脚本替换 IP 时需要先知道被替换的 IP 是什么才行,所以你需要先去 C:\Windows\System32\drivers\etc\hosts 文件中将里面所有 Cloudflare CDN IP 都给改为一个 IP(例如 1.1.1.1,然后再脚本提示中输入该 IP 回车即可,如果 Hosts 文件中以前没有加过 Cloudflare CDN 的 IP,那么你另起一行手动加上个,例如:1.1.1.1 cloudflare.com)。
然后在脚本中输入该 IP,按下回车键继续(IP 会存储在 nowip.txt 文件,以便下次脚本知道要替换哪个 IP)。
随后脚本就会开始测速、备份 Hosts 文件、替换 IP 等操作,提示内容大概如下:
开始测速...
# XIU2/CloudflareSpeedTest vX.X.X
开始延迟测速(模式:TCP IPv4,端口:443):
27936 / 27936 [-------------------------------------------------------------------------------------------------] 100.00%
...
旧 IP 为 X.X.X.X
新 IP 为 Y.Y.Y.Y
开始备份 Hosts 文件(hosts_backup)...
已复制 1 个文件。
开始替换...
完成...
请按任意键继续. . .
## 其他说明
- 以上脚本只是一个示例,大家可以按需修改,比如在脚本代码中
CloudflareST.exe后面添加其他参数。 - 每次替换前都会备份
hosts文件到hosts_backup文件。 - 如果你需要开机自动运行该脚本,只需要右键脚本 - 创建快捷方式,然后将快捷方式移动到
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup目录下即可。 - 如果你用了我的 UAC 白名单小工具 生成了免 UAC 的启动快捷方式,那就复制该快捷方式到开机启动目录下即可。
我对 Windows 的批处理脚本并不熟悉,如果有什么问题或者更好的建议,请务必告诉我!