SYMBOL INDEX (74 symbols across 7 files) FILE: main.go function init (line 20) | func init() { function main (line 133) | func main() { function endPrint (line 148) | func endPrint() { function checkUpdate (line 159) | func checkUpdate() { FILE: task/download.go constant bufferSize (line 19) | bufferSize = 1024 constant defaultURL (line 20) | defaultURL = "https://cf.xiu2.xyz/url" constant defaultTimeout (line 21) | defaultTimeout = 10 * time.Second constant defaultDisableDownload (line 22) | defaultDisableDownload = false constant defaultTestNum (line 23) | defaultTestNum = 10 constant defaultMinSpeed (line 24) | defaultMinSpeed float64 = 0.0 function checkDownloadDefault (line 36) | func checkDownloadDefault() { function TestDownloadSpeed (line 51) | func TestDownloadSpeed(ipSet utils.PingDelaySet) (speedSet utils.Downloa... function getDialContext (line 103) | func getDialContext(ip *net.IPAddr) func(ctx context.Context, network, a... function printDownloadDebugInfo (line 116) | func printDownloadDebugInfo(ip *net.IPAddr, err error, statusCode int, u... function downloadHandler (line 139) | func downloadHandler(ip *net.IPAddr) (float64, string) { FILE: task/httping.go method httping (line 29) | func (p *Ping) httping(ip *net.IPAddr) (int, time.Duration, string) { function MapColoMap (line 125) | func MapColoMap() *sync.Map { function getHeaderColo (line 139) | func getHeaderColo(header http.Header) (colo string) { method filterColo (line 194) | func (p *Ping) filterColo(colo string) string { FILE: task/ip.go constant defaultInputFile (line 14) | defaultInputFile = "ip.txt" function InitRandSeed (line 24) | func InitRandSeed() { function isIPv4 (line 28) | func isIPv4(ip string) bool { function randIPEndWith (line 32) | func randIPEndWith(num byte) byte { type IPRanges (line 39) | type IPRanges struct method fixIP (line 53) | func (r *IPRanges) fixIP(ip string) string { method parseCIDR (line 69) | func (r *IPRanges) parseCIDR(ip string) { method appendIPv4 (line 76) | func (r *IPRanges) appendIPv4(d byte) { method appendIP (line 80) | func (r *IPRanges) appendIP(ip net.IP) { method getIPRange (line 85) | func (r *IPRanges) getIPRange() (minIP, hosts byte) { method chooseIPv4 (line 102) | func (r *IPRanges) chooseIPv4() { method chooseIPv6 (line 126) | func (r *IPRanges) chooseIPv6() { function newIPRanges (line 46) | func newIPRanges() *IPRanges { function loadIPRanges (line 150) | func loadIPRanges() []*net.IPAddr { FILE: task/tcping.go constant tcpConnectTimeout (line 15) | tcpConnectTimeout = time.Second * 1 constant maxRoutine (line 16) | maxRoutine = 1000 constant defaultRoutines (line 17) | defaultRoutines = 200 constant defaultPort (line 18) | defaultPort = 443 constant defaultPingTimes (line 19) | defaultPingTimes = 4 type Ping (line 28) | type Ping struct method Run (line 62) | func (p *Ping) Run() utils.PingDelaySet { method start (line 82) | func (p *Ping) start(ip *net.IPAddr) { method tcping (line 89) | func (p *Ping) tcping(ip *net.IPAddr) (bool, time.Duration) { method checkConnection (line 107) | func (p *Ping) checkConnection(ip *net.IPAddr) (recv int, totalDelay t... method appendIPData (line 122) | func (p *Ping) appendIPData(data *utils.PingData) { method tcpingHandler (line 131) | func (p *Ping) tcpingHandler(ip *net.IPAddr) { function checkPingDefault (line 37) | func checkPingDefault() { function NewPing (line 49) | func NewPing() *Ping { FILE: utils/csv.go constant defaultOutput (line 14) | defaultOutput = "result.csv" constant maxDelay (line 15) | maxDelay = 9999 * time.Millisecond constant minDelay (line 16) | minDelay = 0 * time.Millisecond constant maxLossRate (line 17) | maxLossRate float32 = 1.0 function NoPrintResult (line 30) | func NoPrintResult() bool { function noOutput (line 35) | func noOutput() bool { type PingData (line 39) | type PingData struct type CloudflareIPData (line 47) | type CloudflareIPData struct method getLossRate (line 54) | func (cf *CloudflareIPData) getLossRate() float32 { method toString (line 62) | func (cf *CloudflareIPData) toString() []string { function ExportCsv (line 79) | func ExportCsv(data []CloudflareIPData) { function convertToString (line 95) | func convertToString(data []CloudflareIPData) [][]string { type PingDelaySet (line 104) | type PingDelaySet method FilterDelay (line 107) | func (s PingDelaySet) FilterDelay() (data PingDelaySet) { method FilterLossRate (line 127) | func (s PingDelaySet) FilterLossRate() (data PingDelaySet) { method Len (line 140) | func (s PingDelaySet) Len() int { method Less (line 143) | func (s PingDelaySet) Less(i, j int) bool { method Swap (line 150) | func (s PingDelaySet) Swap(i, j int) { type DownloadSpeedSet (line 155) | type DownloadSpeedSet method Len (line 157) | func (s DownloadSpeedSet) Len() int { method Less (line 160) | func (s DownloadSpeedSet) Less(i, j int) bool { method Swap (line 163) | func (s DownloadSpeedSet) Swap(i, j int) { method Print (line 167) | func (s DownloadSpeedSet) Print() { FILE: utils/progress.go type Bar (line 9) | type Bar struct method Grow (line 19) | func (b *Bar) Grow(num int, MyStrVal string) { method Done (line 23) | func (b *Bar) Done() { function NewBar (line 13) | func NewBar(count int, MyStrStart, MyStrEnd string) *Bar {