package scan import ( "context" "fmt" "time" "git.tcp.direct/perp/shogo/internal/utils" ) // Submit an internet scan func (s *Scan) Internet() { // Get results results, err := utils.Client.ScanInternet(context.Background(), s.Port, s.Protocol) if err != nil { s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error()) return } // Store lines var lines string // Print results lines += utils.Title.Sprintf("Scanning internet for %d %s\n", s.Port, s.Protocol) lines += fmt.Sprintf("%s: %s\n", utils.Green("ID"), utils.Blue(results)) for { time.Sleep(time.Second * 3) // Get results results, err := utils.Client.GetScanStatus(context.Background(), results) if err != nil { s.Results <- fmt.Sprintf("%s: %s\n", utils.Red("Error"), err.Error()) return } // Get status switch results.Status { case "DONE": lines += fmt.Sprintf("%s: %s", utils.Blue("Status"), utils.Green(results.Status)) s.Results <- lines return } } }