Skip to content
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

-dd 模式下,输出的结果是所有可用IP的延迟的排序,而不是前10个 #390

Open
sztuxp opened this issue May 29, 2023 · 4 comments
Labels
功能建议 功能与建议

Comments

@sztuxp
Copy link

sztuxp commented May 29, 2023

功能需求

希望 -dd模式下,能够输出前10延迟低的IP排序。另外,能否提供一个不测延迟只测试速度的的功能。

预期目标

我有上次的10个IP结果,用-dd模式测出最新10个延迟最低的IP, 我用脚本组合这20个IP, 然后软件用-allip模式排序出10个最快速度的IP(希望只测速,不测试延迟)。

@sztuxp sztuxp added the 功能建议 功能与建议 label May 29, 2023
@charSLee013
Copy link
Contributor

怎么感觉标题输出的结果是所有可用IP的延迟的排序与描述不符能够输出前10延迟低的IP排序

实际上每次测试后的结果都存在本地的result.csv文件中,终端显示的结果可以通过参数-p (显示结果数量)来进行修改
比如想在终端上显示所有可用IP的延迟的排序的,那么可以 -p 9999999设为最大值

希望只测速,不测试延迟

假设是使用TCPing来进行测速,每次TCP请求只有 20*5 = 100
如果你想减少在延迟测速上的时间,可以修改参数 -t (延迟测速次数)-t 1
这样总的TCP 请求就下降到 20*2 = 40

更好的方案

我有上次的10个IP结果,用-dd模式测出最新10个延迟最低的IP, 我用脚本组合这20个IP, 然后软件用-allip模式排序出10个最快速度的IP(希望只测速,不测试延迟)。

实际上可以合并 上次结果+总的IP的文件,然后拿去测速
比如假设上次的结果为

# last.txt
1.1.1.1
2.2.2.2

那么可以将两个文件合并后再测速

cat last.txt ip.txt > scan_ip.txt
CloudflareSpeedTest -f ./scan_ip.txt

这样测试集里既包含上次最优结果,也有总IP测试最优结果

@sztuxp
Copy link
Author

sztuxp commented May 30, 2023

如果我的命令是延迟和测速一次完成,result.csv内只有10个IP,但用-dd参数,result.csv文件内结果有几千个IP,当然我也可以用脚本选择前10个出来,并和旧的合并,但总觉得不是很完美

@charSLee013
Copy link
Contributor

charSLee013 commented May 30, 2023

我大致明白了你的需求,下面按照逻辑顺序列出来:

  1. 对所有/随机 IP 仅进行延迟测试
  2. 挑选出前10的 IP 地址,与上次挑选的 IP 地址合并成新的20个IP
  3. 对这20个 IP 进行测速测试再挑选出最好的10个 IP 地址

实际上并不需要这么麻烦,因为主要的两次工作:

  1. 选出新的延迟最低前10 IP地址
  2. 对合并的20个 IP 地址进行测速

可以直接一次搞定:

  1. 将旧前10 IP地址写入到ip.txt
  2. 对所有/随机 IP 和旧前10 IP 进行延迟和测速测试
  3. 得出新的前10 IP 地址

测速 IP 的顺序是按照延迟和丢包率排序的,在满足下载速度要求的IP达到一定数量后,退出测速
唯一不足的地方就是测速的 IP 地址不一定包含上次前10 的IP地址
好处就是你可以保证目前得出的结果是自选后最优


如果一定要包含对旧前10 IP 地址进行测速,稍微写一下脚本比如下面的脚本算作一个样例

#!/usr/bin/env bash

#改名旧的前10
mv new_top_10.txt old_top_10.txt

# 仅进行延迟测试
CloudflareSpeedTest -dd

# 提取出新的前10
cat result.csv | sort -t, -k6nr | head -n 10 | awk -F',' '{print $1}' > new_top_10.txt

# 对20个IP进行测速测试
cat new_top_10.txt old_top_10.txt > test_ip.txt
CloudflareSpeedTest -f test_ip.txt -t 1

# 得出新的前10IP地址
cat result.csv

@sztuxp
Copy link
Author

sztuxp commented May 30, 2023

你的脚本真简洁,谢谢了!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
功能建议 功能与建议
Projects
None yet
Development

No branches or pull requests

2 participants