shogo/internal/shodan/scan/internet.go
perp c47bec5f76 💥 Remade all commands
Remade all commands for the pool.
2023-08-03 23:48:39 +01:00

47 lines
985 B
Go

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
}
}
}