本文整理汇总了Golang中mig/ninja/mig/modules.Result.GetStatistics方法的典型用法代码示例。如果您正苦于以下问题:Golang Result.GetStatistics方法的具体用法?Golang Result.GetStatistics怎么用?Golang Result.GetStatistics使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mig/ninja/mig/modules.Result
的用法示例。
在下文中一共展示了Result.GetStatistics方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: PrintResults
// PrintResults() is an *optional* method that returns results in a human-readable format.
// if matchOnly is set, only results that have at least one match are returned.
// If matchOnly is not set, all results are returned, along with errors and statistics.
func (r *run) PrintResults(result modules.Result, matchOnly bool) (prints []string, err error) {
var (
el elements
stats statistics
)
err = result.GetElements(&el)
if err != nil {
panic(err)
}
if el.Hostname != "" {
prints = append(prints, fmt.Sprintf("hostname is %s", el.Hostname))
}
for _, addr := range el.Addresses {
prints = append(prints, fmt.Sprintf("address is %s", addr))
}
for host, addrs := range el.LookedUpHost {
for _, addr := range addrs {
prints = append(prints, fmt.Sprintf("lookedup host %s has IP %s", host, addr))
}
}
if matchOnly {
return
}
for _, e := range result.Errors {
prints = append(prints, fmt.Sprintf("error: %v", e))
}
err = result.GetStatistics(&stats)
if err != nil {
panic(err)
}
prints = append(prints, fmt.Sprintf("stat: %d stuff found", stats.StuffFound))
return
}
示例2: PrintResults
func (r *run) PrintResults(result modules.Result, foundOnly bool) (prints []string, err error) {
var (
elem elements
stats Statistics
)
err = result.GetElements(&elem)
if err != nil {
panic(err)
}
err = result.GetStatistics(&stats)
if err != nil {
panic(err)
}
for _, x := range elem.Packages {
resStr := fmt.Sprintf("pkgmatch name=%v version=%v type=%v", x.Name, x.Version, x.Type)
prints = append(prints, resStr)
}
if !foundOnly {
for _, we := range result.Errors {
prints = append(prints, we)
}
stats := fmt.Sprintf("Statistics: runtime %v", stats.ExecRuntime)
prints = append(prints, stats)
}
return
}
示例3: PrintResults
// PrintResults() returns results in a human-readable format. if foundOnly is set,
// only results that have at least one match are returned.
// If foundOnly is not set, all results are returned, along with errors and
// statistics.
func (r *run) PrintResults(result modules.Result, foundOnly bool) (prints []string, err error) {
var (
el searchResults
stats statistics
)
err = result.GetElements(&el)
if err != nil {
panic(err)
}
err = result.GetStatistics(&stats)
if err != nil {
panic(err)
}
for label, sr := range el {
for _, mps := range sr {
var out string
if mps.Process.Name == "" {
if foundOnly {
continue
}
out = fmt.Sprintf("0 match found in search '%s'", label)
} else {
out = fmt.Sprintf("%s [pid:%.0f] in search '%s'",
mps.Process.Name, mps.Process.Pid, label)
}
if mps.Search.Options.MatchAll {
prints = append(prints, out)
continue
}
out += " on checks"
// if matchany, print the detail of the checks that matched with the filename
for _, v := range mps.Search.Names {
out += fmt.Sprintf(" name='%s'", v)
}
for _, v := range mps.Search.Libraries {
out += fmt.Sprintf(" library='%s'", v)
}
for _, v := range mps.Search.Contents {
out += fmt.Sprintf(" content='%s'", v)
}
for _, v := range mps.Search.Bytes {
out += fmt.Sprintf(" byte='%s'", v)
}
prints = append(prints, out)
}
}
if !foundOnly {
for _, e := range stats.Failures {
prints = append(prints, fmt.Sprintf("Failure: %v", e))
}
for _, e := range result.Errors {
prints = append(prints, e)
}
stat := fmt.Sprintf("Statistics: %.0f processes checked, %.0f matched, %d failures, ran in %s.",
stats.ProcessCount, stats.TotalHits, len(stats.Failures), stats.Exectime)
prints = append(prints, stat)
}
return
}
示例4: PrintResults
func (r *run) PrintResults(result modules.Result, foundOnly bool) (prints []string, err error) {
var (
elem ScribeElements
stats statistics
)
err = result.GetElements(&elem)
if err != nil {
panic(err)
}
err = result.GetStatistics(&stats)
if err != nil {
panic(err)
}
for _, x := range elem.Results {
if elem.HumanOutput {
prints = append(prints, x.String())
} else if elem.JSONOutput {
prints = append(prints, x.JSON())
} else {
for _, y := range x.SingleLineResults() {
prints = append(prints, y)
}
}
}
if !foundOnly {
for _, we := range result.Errors {
prints = append(prints, we)
}
s := fmt.Sprintf("Statistics: runtime %v", stats.ExecRuntime)
prints = append(prints, s)
}
return
}
示例5: PrintResults
func (r *run) PrintResults(result modules.Result, foundOnly bool) (prints []string, err error) {
var (
el elements
stats statistics
)
err = result.GetElements(&el)
if err != nil {
return
}
prints = append(prints, "local time is "+el.LocalTime)
if el.HasCheckedDrift {
if el.IsWithinDrift {
prints = append(prints, "local time is within acceptable drift from NTP servers")
} else {
prints = append(prints, "local time is out of sync from NTP servers")
for _, drift := range el.Drifts {
prints = append(prints, drift)
}
}
}
// stop here if foundOnly is set, we don't want to see errors and stats
if foundOnly {
return
}
for _, e := range result.Errors {
prints = append(prints, "error:", e)
}
err = result.GetStatistics(&stats)
if err != nil {
panic(err)
}
prints = append(prints, "stat: execution time was "+stats.ExecTime)
for _, ntpstat := range stats.NtpStats {
if ntpstat.Reachable {
prints = append(prints, "stat: "+ntpstat.Host+" responded in "+ntpstat.Latency+" with time "+ntpstat.Time.UTC().String()+". local time drifts by "+ntpstat.Drift)
} else {
prints = append(prints, "stat: "+ntpstat.Host+" was unreachable")
}
}
if result.Success {
prints = append(prints, fmt.Sprintf("timedrift module has succeeded"))
} else {
prints = append(prints, fmt.Sprintf("timedrift module has failed"))
}
return
}
示例6: PrintResults
func (r *run) PrintResults(result modules.Result, matchOnly bool) (prints []string, err error) {
var (
el elements
stats statistics
)
defer func() {
if e := recover(); e != nil {
err = fmt.Errorf("PrintResults() -> %v", e)
}
}()
el = *newElements()
err = result.GetElements(&el)
if err != nil {
panic(err)
}
for val, res := range el.LocalMAC {
if matchOnly && len(res) < 1 {
continue
}
for _, el := range res {
resStr := fmt.Sprintf("found local mac %s for netstat localmac:'%s'", el.LocalMACAddr, val)
resStr += printNamespaceId(el.Namespace)
prints = append(prints, resStr)
}
}
for val, res := range el.NeighborMAC {
if matchOnly && len(res) < 1 {
continue
}
for _, el := range res {
resStr := fmt.Sprintf("found neighbor mac %s %s for netstat neighbormac:'%s'",
el.RemoteMACAddr, el.RemoteAddr, val)
resStr += printNamespaceId(el.Namespace)
prints = append(prints, resStr)
}
if len(res) == 0 {
resStr := fmt.Sprintf("did not find anything for netstat neighbormac:'%s'", val)
prints = append(prints, resStr)
}
}
for val, res := range el.LocalIP {
if matchOnly && len(res) < 1 {
continue
}
for _, el := range res {
resStr := fmt.Sprintf("found local ip %s for netstat localip:'%s'", el.LocalAddr, val)
resStr += printNamespaceId(el.Namespace)
prints = append(prints, resStr)
}
if len(res) == 0 {
resStr := fmt.Sprintf("did not find anything for netstat localip:'%s'", val)
prints = append(prints, resStr)
}
}
for val, res := range el.ConnectedIP {
if matchOnly && len(res) < 1 {
continue
}
for _, el := range res {
resStr := fmt.Sprintf("found connected tuple %s:%.0f with local tuple %s:%.0f for netstat connectedip:'%s'",
el.RemoteAddr, el.RemotePort, el.LocalAddr, el.LocalPort, val)
resStr += printNamespaceId(el.Namespace)
prints = append(prints, resStr)
}
if len(res) == 0 {
resStr := fmt.Sprintf("did not find anything for netstat connectedip:'%s'", val)
prints = append(prints, resStr)
}
}
for val, res := range el.ListeningPort {
if matchOnly && len(res) < 1 {
continue
}
for _, el := range res {
resStr := fmt.Sprintf("found listening port %.0f for netstat listeningport:'%s'", el.LocalPort, val)
resStr += printNamespaceId(el.Namespace)
prints = append(prints, resStr)
}
if len(res) == 0 {
resStr := fmt.Sprintf("did not find anything for netstat listeningport:'%s'", val)
prints = append(prints, resStr)
}
}
if matchOnly {
return
}
for _, e := range result.Errors {
prints = append(prints, fmt.Sprintf("error: %v", e))
}
err = result.GetStatistics(&stats)
if err != nil {
panic(err)
}
resStr := fmt.Sprintf("Statistics: total hits %.0f examined %.0f items exectime %s",
stats.Totalhits, stats.Examined, stats.Exectime)
prints = append(prints, resStr)
return
}