-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
通过http获得可用的机场代码测速ip后,能否二次筛选一下? #360
Comments
CloudflareST 的 HTTPing 测试,和 curl 测试原理是一样的,理论上测试结果是通的就能用,如果不能用就是其他因素影响了(例如墙/运营商的干扰,像我这边平时都不会用 HTTPing 测试 Cloudflare IPv4,因为越测越少,每次测试都有大批 IP 被干扰阻断。。。测的时候是通的,但等我手动去 TCPing 就是超时了)。 你这种需求,建议用脚本去实现,每次测速后,再次对结果进行测速筛选。 因为 Cloudflare CDN IPv4 被我这边联通干扰阻断了,因此我这边是完全用不上
|
🤖 功能修改@1265578519 ,我已按照功能需求修改了源代码,重点如下:
也增加了几个指标用来观察
先决条件
国外VPS操作系统:Ubuntu 20.04 国内机器操作系统:Mac 12.5.1 ip.txt文件如下
测试命令go run . -httping -t 10 -dd -n 5700 -tp 80 -url http://cdn.cloudflare.steamstatic.com -allip
测试结果国外机器1:Azure - 韩国
国外机器2: vultr - 新加坡
国内机器:广东联通
国内机器: 广东电信
可以看出来路由抖动的案例几乎为0,而且根据 Cloudflare Status 官方列出来的计划来看,几乎每个区每天都有被调整的路由 所以这功能实现起来不难,但没有看到对应的效果,如果有更好的使用场景可以考虑🤔 引用修改后的仓库地址: https://github.com/charSLee013/CloudflareSpeedTest |
@charSLee013 有没有exe,,发我试试,感觉你写的不太对可能有bug |
@1265578519 windows 版本你可以安装个golang,然后自行运行试试看,我手头上没有win机器 @echo off
git clone https://github.com/charSLee013/CloudflareSpeedTest.git
cd CloudflareSpeedTest
go run . -httping -t 10 -dd -n 5700 -tp 80 -url http://cdn.cloudflare.steamstatic.com -allip |
功能需求
这个难度改起来应该不大,需求的人应该也挺多的,因为测出来的ip基本不能用,甚至可以算是bug?得出的结果后,还要人工去用cmd傻乎乎的去curl确认ip可用情况太不科学了。
通过http获得可用的机场代码测速ip后,能否二次筛选一下?
二次对每个ip测试十次,筛选可用ip。
需求,二次对ip判断丢包,和机场代码保持一致
例子
问题图,某些ip会bgp路由到两个地域,HKG和SEA,然后来回跳导致HKG出现大量丢包引物无法访问。#280 至少我这移动宽带HKG已经残废。
测试结果的时候,可能下载测速正好是SEA,然后显示43MB/s,实际用起来发现一直0KB。。。测了一下发现丢包率很高,通过curl发现路由地域来回跳动。应当二次筛选后在进行下载测速。
例如获取到70个可用ip,二次筛选这70个,每个尝试10次curl,应当全部获取为同一个SEA机场代码,如果出现其它的HKG之类其它不同地域的时候则丢弃次ip不进行后续下载测速。
如果二次筛选是丢包未获取到机场代码的响应结果,应当执行排序到末尾队列还是直接丢弃啥的。。。这个看你想啦!
目的肯定是测出最精品的ip。。。不然测出来一个速度,实际上用起来确有问题。
我使用的bat命令
预期目标
这个ip一样的效果,每次都是SEA,而且没有丢包,堪称精品
The text was updated successfully, but these errors were encountered: