-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
能否在每次测速的时候将当前IP一同测速并比较,这样可以防止定时运行时选出来的新IP速度比原IP还慢的情况发生。 #204
Comments
这些可以依靠第三方脚本实现的功能,是不会将其集成到软件自身的。 可以测试获得新 IP 后,将新旧两个 IP 写入到一个 txt 文件中,然后指定该文件 对现有脚本稍微改改就能实现该效果。 |
小白对脚本一窍不通,比如整合到大佬的自动修改hosts的脚本里呢? |
右键编辑 echo %bestip%>nowip_hosts.txt
echo.
echo 旧 IP 为 %nowip%
echo 新 IP 为 %bestip% 在上面这段代码的前面插入以下代码: echo %nowip%>hosts1.txt
echo %bestip%>>hosts1.txt
:: 删除旧测速结果文件,方便后续判断
del /f result_hosts1.txt
:: 这里可以自己添加、修改 CloudflareST 的运行参数,echo.| 的作用是自动回车退出程序(不再需要加上 -p 0 参数了)
echo.|CloudflareST.exe -o "result_hosts.txt" -f "hosts1.txt"
:: 判断结果文件是否存在,如果不存在说明结果为 0
if not exist result_hosts.txt (
echo.
echo CloudflareST 测速结果 IP 数量为 0,跳过下面步骤...
goto :STOP
)
:: 获取第一行的最快 IP
set /a n=0
for /f "tokens=1 delims=," %%i in (result_hosts.txt) do (
SET /a n+=1
If !n!==2 (
SET bestip=%%i
goto :END1
)
)
if "%bestip%"=="%nowip%" (
echo.
echo 新 IP 不如旧 IP,终止后续的替换步骤...
goto :STOP
)
:END1 这样运行脚本时,会在首次测速完成后,将新、旧 IP 写入 |
感谢大佬细致指导! |
|
大佬能弄个openwrt能用的shell脚本吗? |
@dqyhonghu
在上面这段代码的前面插入以下代码: # 将旧 IP 与新 IP 都写入文件用来测速
echo -e "${NOWIP}\n${BESTIP}" > hosts1.txt
# 删除结果文件,方便后续判断
rm -f "result_hosts1.txt"
# 这里可以自己添加、修改 CloudflareST 的运行参数
./CloudflareST -f "hosts1.txt" -o "result_hosts1.txt"
[[ ! -e "result_hosts1.txt" ]] && echo "新旧 IP 对比无结果,跳过下面步骤..." && exit 0
# 获取最快 IP
BESTIP=$(sed -n "2,1p" result_hosts1.txt | awk -F, '{print $1}')
[[ -z "${BESTIP}" ]] && echo "新旧 IP 对比无结果,跳过下面步骤..." && exit 0
[[ "${BESTIP}" == "${NOWIP}" ]] && echo "新 IP 不如旧 IP,终止后续的替换步骤..." && exit 0 这样运行脚本时,会在首次测速完成后,将新、旧 IP 写入 |
谢谢大佬!试了一下,出现很奇怪的问题:
文件夹中也没有生成 |
@dqyhonghu 你改一下上面代码里的两个 |
谢谢大佬及时和耐心的解答,今天分别增加了标记“01”和“02”,但脚本运行却正常了,并没有出现昨天的情况,还是没找到昨天遇到现象的具体原因,只能等以后看还会不会再次出现 ! |
今天又遇到了,是前面的那一行
|
@dqyhonghu 前者的话,代表 CloudflareST 测速后没有生成结果文件。
如果是报错的话,你是可以看到的(或者说 CMD 窗口会直接关闭),是不会像上面你发的那样,正确输出完整信息的。 注意,你前面写的输出结果里是指定了条件的:
|
@XIU2 明白了,谢谢! |
No description provided.
The text was updated successfully, but these errors were encountered: