package shodan import ( "context" "fmt" "git.supernets.org/perp/shogo/internal/utils" ) // Return your account information func (s *Shodan) Info() { // Fetch API information results, err := utils.Client.GetAPIInfo(context.Background()) if err != nil { s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error()) return } // Store lines var lines string // Store profile name var name string // Add lines lines += utils.Title.Sprintln("API") lines += fmt.Sprintf("%s: %s\n", utils.Green("Plan"), utils.Blue(results.Plan)) lines += fmt.Sprintf("%s: %s\n", utils.Blue("Query credits"), utils.Green(results.QueryCredits)) lines += fmt.Sprintf("%s: %s\n", utils.Green("Scan credits"), utils.Blue(results.ScanCredits)) lines += fmt.Sprintf("%s: %s\n", utils.Blue("Telnet"), utils.Green(results.Telnet)) lines += fmt.Sprintf("%s: %s\n", utils.Green("HTTPS"), utils.Blue(results.HTTPS)) lines += fmt.Sprintf("%s: %s", utils.Blue("Unlocked"), utils.Green(results.Unlocked)) // Profile enabled if s.Flags.Profile { // Fetch profile information results, err := utils.Client.GetAccountProfile(context.Background()) if err != nil { s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error()) return } // Empty name if results.Name == "" { name = "?" } else { name = results.Name } // Add lines lines += "\n\n" lines += utils.Title.Sprintln("Profile") lines += fmt.Sprintf("%s: %s\n", utils.Green("Name"), utils.Blue(name)) lines += fmt.Sprintf("%s: %s\n", utils.Blue("Member"), utils.Green(results.Member)) lines += fmt.Sprintf("%s: %s\n", utils.Green("Credits"), utils.Blue(results.Credits)) lines += fmt.Sprintf("%s: %s", utils.Blue("Created"), utils.Green(results.Created)) // Send results s.Results <- lines } // Send results s.Results <- lines }