package main import ( "fmt" "os" "strings" "time" "git.supernets.org/perp/falcon" ) // Colors const ( reset = "\033[0m" blue = "\033[34m" green = "\033[32m" red = "\033[31m" ) func main() { // Read file content, err := os.ReadFile(os.Args[1]) if err != nil { panic(err) } // Create falcon, set proxies & set timeout f := falcon.New(10) f.Proxies = strings.Split(string(content), "\n") f.Timeout = time.Second * 5 // Start falcon err = f.Start() if err != nil { panic(err) } // Store count var count int // Go through proxies for range len(f.Proxies) { // Receive from incoming channels select { case socks5 := <-f.SOCKS5: // Add count count += 1 // Print information fmt.Printf("%sIP%s: %s%s\n", green, reset, blue, socks5.IP) fmt.Printf("%sISP%s: %s%s\n", blue, reset, green, socks5.Isp) fmt.Printf("%sCountry%s: %s%s\n", green, reset, blue, socks5.Country) fmt.Printf("%sCity%s: %s%s\n", blue, reset, green, socks5.City) fmt.Println(reset) case err := <-f.Error: // Print error fmt.Printf("%s%s%s\n", red, err, reset) } } // Print count fmt.Printf("Found %s%d%s SOCKS5 proxies\n", green, count, reset) }