Skip to content

Cloudflare IP 测速器是一个使用 Golang 编写的小工具,用于测试一些 Cloudflare 的 IP 地址的位置信息、延迟和下载速度,并将结果输出到 CSV 文件中。

License

Notifications You must be signed in to change notification settings

yutian81/IP-SpeedTest

 
 

Repository files navigation

修改说明

在原版基础上增加了 delay 延迟参数,默认值为 220ms,超过该延迟的 ip 将跳过测速

项目简介

这是一个用于测试 IP 地址延迟和下载速度的工具。它可以从指定的文件中读取 IP 地址和端口,并发进行 TCP 连接测试和 HTTP 请求测试,筛选低于延迟阈值的 IP 并进行下载速度测试,也可通过参数设置仅测延迟不测速。最终将结果写入 CSV 文件。

核心功能

  • 高并发支持:可设置并发请求的最大协程数,提高检测效率。
  • 数据中心位置识别:通过 Cloudflare 的 cdn-cgi/trace 接口获取数据中心位置信息。
  • 延迟阈值:支持对 IP 进行延迟测试,并筛选低于默认延迟阈值的数据。(在原版基础上新增的功能
  • 下载速度测试:支持对符合条件的 IP 地址进行下载速度测试。
  • 结果导出:将测试结果导出为 CSV 文件,包含 IP 地址、端口、数据中心、地区、国家、城市、延迟和下载速度等信息(全中文化)。

安装说明

自行编译

确保你已经安装了 Go 环境,然后使用以下命令编译程序:

git clone https://github.com/yutian81/IP-SpeedTest.git
cd IP-SpeedTest
go build -o iptest main.go

下载编译好的软件

根据系统和CPU架构选择:
https://github.com/yutian81/IP-SpeedTest/releases

使用说明

全参数运行示例

./iptest -file=ip.txt -outfile=ip.csv -max=100 -speedtest=5 -speedlimit=10 -delay=220 -url=speed.cloudflare.com/__down?bytes=500000000 -tls=true -tcpurl=www.speedtest.net

推荐运行示例

./iptest -file=ip.txt -outfile=ip.csv -max=300 -speedtest=3 -speedlimit=5 -delay=200 -url=spurl.api.030101.xyz/50mb

参数说明

参数 描述 默认值
-file IP 地址文件名称,格式为 ip port,IP 和端口之间用空格隔开 ip.txt
-outfile 输出文件名称 ip.csv
-max 并发请求最大协程数 100
-delay 延迟阈值(ms) 220
-speedtest 下载测速协程数量,设为 0 禁用测速 5
-speedlimit 最低下载速度(MB/s),低于该速度不写入结果 csv 文件 0
-url 测速文件地址,不需要http或https协议头 speed.cloudflare.com/__down?bytes=500000000
-tls 是否启用 TLS true
-tcpurl TCP 请求地址,不需要http或https协议头 www.speedtest.net

关于 -file

-file:指定包含 IP 地址和端口的文件路径,默认为 ip.txt
文件格式为每行一个 IP 地址和端口,用空格分隔,例如:

1.1.1.1 80
2.2.2.2 443
3.3.3.3 8080

关于 -outfile

-outfile:测速后输出的 csv 文件,默认为 ip.csv
输出内容已全部中文化(内置在代码中,不依赖外部 location.json 文件 )示例输出:

IP地址,端口,TLS,数据中心,地区,国际代码,国家,城市,网络延迟,下载速度MB/s
192.168.1.1,443,true,LAX,北美洲,US,美国,洛杉矶,50 ms,12.34
192.168.1.2,80,false,SIN,亚太,SG,新加坡,新加坡,100 ms,8.76

注意事项

  • 文件描述符限制:在 Linux 系统上,如果以 root 用户运行,程序会尝试提升文件描述符的上限。如果你遇到文件描述符不足的问题,请确保以 root 用户运行程序。
  • 测速文件:默认使用的是 Cloudflare 500m 的测速文件,为了提高测速效率,可以使用其他测速地址,如mingyu大佬的spurl.api.030101.xyz/50mb
  • 延迟阈值:通过 -delay 参数可以过滤掉延迟较高的 IP 地址,确保只测试低延迟的 IP。

依赖

Go 1.16 或更高版本。

许可证

本项目基于 MIT 许可证开源。
本软件按 "原样" 提供,没有任何形式的明示或暗示保证,包括但不限于适销性保证、特定用途适用性保证和非侵权保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他方面,由于或与软件或使用或其他交易中的软件产生或与之相关的操作。

About

Cloudflare IP 测速器是一个使用 Golang 编写的小工具,用于测试一些 Cloudflare 的 IP 地址的位置信息、延迟和下载速度,并将结果输出到 CSV 文件中。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 94.9%
  • Makefile 5.1%