2023-08-01 22:35:47 +00:00
|
|
|
package shodan
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"fmt"
|
|
|
|
|
2024-05-29 00:42:40 +00:00
|
|
|
"git.supernets.org/perp/shogo/internal/utils"
|
2023-08-01 22:35:47 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// Return your account information
|
2023-08-03 22:48:39 +00:00
|
|
|
func (s *Shodan) Info() {
|
2023-08-01 22:35:47 +00:00
|
|
|
// Fetch API information
|
2023-08-02 04:09:28 +00:00
|
|
|
results, err := utils.Client.GetAPIInfo(context.Background())
|
|
|
|
if err != nil {
|
2023-08-03 22:48:39 +00:00
|
|
|
s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error())
|
2023-08-02 04:09:28 +00:00
|
|
|
return
|
2023-08-01 22:35:47 +00:00
|
|
|
}
|
|
|
|
|
2023-08-03 22:48:39 +00:00
|
|
|
// 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
|
2023-08-01 22:35:47 +00:00
|
|
|
results, err := utils.Client.GetAccountProfile(context.Background())
|
|
|
|
if err != nil {
|
2023-08-03 22:48:39 +00:00
|
|
|
s.Results <- fmt.Sprintf("%s: %s", utils.Red("Error"), err.Error())
|
2023-08-01 22:35:47 +00:00
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2023-08-02 04:09:28 +00:00
|
|
|
// Empty name
|
|
|
|
if results.Name == "" {
|
|
|
|
name = "?"
|
|
|
|
} else {
|
|
|
|
name = results.Name
|
|
|
|
}
|
|
|
|
|
2023-08-03 22:48:39 +00:00
|
|
|
// 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))
|
2023-08-02 04:09:28 +00:00
|
|
|
|
2023-08-03 22:48:39 +00:00
|
|
|
// Send results
|
|
|
|
s.Results <- lines
|
2023-08-01 22:35:47 +00:00
|
|
|
}
|
2023-08-03 22:48:39 +00:00
|
|
|
|
|
|
|
// Send results
|
|
|
|
s.Results <- lines
|
2023-08-01 22:35:47 +00:00
|
|
|
}
|