建议给 IPv6 抽样略过最后 4 段,避免同子网无效测速

Author: CrazyBoyFengCreated Apr 22, 2026Updated May 18, 2026
Labels功能建议

功能需求

根据 IPv6 规范,/64 子网(后 4 段共 8 个字节)是标准的二层网络边界。同一个 /64 内的 IP 共享外部路由节点。也就是说, /64 肯定在同一个物理线路上,抽取多个 IP 进行测试没有太大的意义。 当前如果输入 /64 段,程序会抽出一百左右 IP 进行重复测试。但每个 /64 只取一个就够了。

预期目标

改进很简单,把原本循环采样前14个字节(IPv6 地址共 16 个字节,每两个字节是一段),变为循环采样前 8 个字节,后八个字节(主机位)只随机一次:


https://github.com/XIU2/CloudflareSpeedTest/blob/760829d026ece3f118afeb3e92d415cf1dcc5156/task/ip.go#L132-L133 改为:

for i := 8; i < 16; i++ {             // 随机 /64 主机位,即后 4 段,共 8 位字节
    r.firstIP[i] = randIPEndWith(255)
}

https://github.com/XIU2/CloudflareSpeedTest/blob/760829d026ece3f118afeb3e92d415cf1dcc5156/task/ip.go#L139 改为:

for i := 7; i >= 0; i-- {            // 从第 8 位字节开始往前随机

Source: XIU2/CloudflareSpeedTest