mirror of
https://github.com/XIU2/CloudflareSpeedTest.git
synced 2026-03-18 05:16:02 +08:00
新增 指定IP段数据(-ip) 参数; 新增 延迟测速时显示可用 IP 数量; 新增 有效状态代码(HTTPing 模式所用) 参数; 优化 HTTPing 延迟测速模式; 优化 匹配指定地区 功能
This commit is contained in:
43
task/ip.go
43
task/ip.go
@@ -18,6 +18,7 @@ var (
|
||||
TestAll = false
|
||||
// IPFile is the filename of IP Rangs
|
||||
IPFile = defaultInputFile
|
||||
IPText string
|
||||
)
|
||||
|
||||
func InitRandSeed() {
|
||||
@@ -137,22 +138,34 @@ func (r *IPRanges) chooseIPv6() {
|
||||
}
|
||||
|
||||
func loadIPRanges() []*net.IPAddr {
|
||||
if IPFile == "" {
|
||||
IPFile = defaultInputFile
|
||||
}
|
||||
file, err := os.Open(IPFile)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
ranges := newIPRanges()
|
||||
scanner := bufio.NewScanner(file)
|
||||
for scanner.Scan() {
|
||||
ranges.parseCIDR(scanner.Text())
|
||||
if isIPv4(scanner.Text()) {
|
||||
ranges.chooseIPv4()
|
||||
} else {
|
||||
ranges.chooseIPv6()
|
||||
if IPText != "" { // 从参数中获取 IP 段数据
|
||||
IPs := strings.Split(IPText, ",")
|
||||
for _, IP := range IPs {
|
||||
ranges.parseCIDR(IP)
|
||||
if isIPv4(IP) {
|
||||
ranges.chooseIPv4()
|
||||
} else {
|
||||
ranges.chooseIPv6()
|
||||
}
|
||||
}
|
||||
} else { // 从文件中获取 IP 段数据
|
||||
if IPFile == "" {
|
||||
IPFile = defaultInputFile
|
||||
}
|
||||
file, err := os.Open(IPFile)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
scanner := bufio.NewScanner(file)
|
||||
for scanner.Scan() {
|
||||
ranges.parseCIDR(scanner.Text())
|
||||
if isIPv4(scanner.Text()) {
|
||||
ranges.chooseIPv4()
|
||||
} else {
|
||||
ranges.chooseIPv6()
|
||||
}
|
||||
}
|
||||
}
|
||||
return ranges.ips
|
||||
|
||||
Reference in New Issue
Block a user