-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcf-cdn-ddns
115 lines (97 loc) · 2.89 KB
/
cf-cdn-ddns
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: 设置cloudflare域名变量
set "auth_token="
set "zone_id="
set "dns_record_id="
set "domain_name="
:: 设置CloudflareST测试参数
set "url=https://cfts.amizcmi.us.kg/ts"
set "sl=50"
set "tll=40"
set "tl=200"
:: 第一部分:nowip文件处理
:: 检查是否存在 nowip.txt 文件,如果不存在则创建空文件
if not exist nowip.txt (
echo nowip.txt 文件不存在,创建一个空白文件...
echo. > nowip.txt
) else (
:: 如果 nowip.txt 存在则读取 nowip.txt 文件中的 IP 地址并存入变量 nowip
set "nowip="
for /f "delims=" %%i in (nowip.txt) do set "nowip=%%i"
:: 将提取nowip.txt里面的内容写入ip_2.txt
echo !nowip! > ip_2.txt
)
:: 第二部分:生成对比的优选ip
:: 运行CloudflareST程序优选ip,并且输出到cf_test_result.txt
echo 运行CloudflareST程序优选ip
echo.|CloudflareST.exe -url %url% -sl %sl% -tll %tll% -tl %tl% -o "cf_test_result.txt"
:: 判断结果文件是否存在,如果不存在说明结果为 0
if not exist cf_test_result.txt (
echo.
echo CloudflareST 测速结果 IP 数量为 0,跳过下面步骤...
goto :STOP
)
:: 获取第一行的最快 IP
:: 初始化计数变量
set n=0
for /f "tokens=1 delims=," %%i in (cf_test_result.txt) do (
set /a n+=1
if !n!==2 (
set "testip=%%i"
goto :END
)
)
:END
echo 原 IP 为 %nowip%
echo 测试 IP 为 %testip%
:: 第三部分:比较新旧两个ip
:: 判断刚刚获取的最快 IP 是否为空,以及是否和旧 IP 一样
if "%testip%"=="" (
echo.
echo CloudflareST 测速结果 IP 数量为 0,跳过下面步骤...
goto :STOP
)
:: 判断刚刚获取的最快 IP 是否和旧 IP 一样
if "%testip%"=="%nowip%" (
echo.
echo CloudflareST 测速结果 IP 数量为 0,跳过下面步骤...
goto :STOP
)
:: 将得到的测试的ip写入ip_2.txt
echo %testip% >> ip_2.txt
echo.
:: 运行 CloudflareST 程序,输出到 ip_2.txt 文件
echo 运行 CloudflareST 程序,比较新旧ip的速度
echo.|CloudflareST.exe -f ip_2.txt -o ip_2.txt
:: 读取文件并获取第二行的 IP 地址
:: 重新初始化计数变量
set n=0
for /f "skip=1 tokens=1 delims=," %%i in (ip_2.txt) do (
set /a n+=1
if !n!==1 (
set "ip=%%i"
echo 得到的ip是: %%i
goto :END2
)
)
:END2
:: 确保 ip 变量被正确设置
if not defined ip (
echo 未找到ip
pause
exit /b
)
:: 新ip写入nowip.txt
echo %ip% > nowip.txt
:: 执行 curl 命令上传ip解析
echo Executing curl command...
curl -X PUT "https://api.cloudflare.com/client/v4/zones/%zone_id%/dns_records/%dns_record_id%" ^
-H "Authorization: Bearer %auth_token%" ^
-H "Content-Type: application/json" ^
--data "{\"type\":\"A\",\"name\":\"%domain_name%\",\"content\":\"%ip%\",\"ttl\":1,\"proxied\":false}"
:: 结束延迟扩展
endlocal
pause
:STOP