Documentation
¶
Overview ¶
Package gonmap is a wrapper around the Nmap tool. It uses the XML output capability of Nmap to retrieve results and make them available in Go.
Package gonmap port scanning is implemented through the PortScan type.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type NmapRun ¶
type NmapRun struct { XMLName xml.Name `xml:"nmaprun"` Version string `xml:"version"` Args string `xml:"args,attr"` Start int64 `xml:"start,attr"` Hosts []NmapRunHost `xml:"host"` Stats NmapRunStats `xml:"runstats"` }
type NmapRunHost ¶
type NmapRunHost struct { XMLName xml.Name `xml:"host"` Ports []NmapRunPort `xml:"ports>port"` Address NmapRunHostAddress `xml:"address"` Status NmapRunStatus `xml:"status"` }
type NmapRunHostAddress ¶
type NmapRunPort ¶
type NmapRunPort struct { XMLName xml.Name `xml:"port"` Protocol string `xml:"protocol,attr"` Port int `xml:"portid,attr"` Status NmapRunState `xml:"state"` Service NmapRunPortService `xml:"service"` }
type NmapRunPortService ¶
type NmapRunState ¶
type NmapRunStats ¶
type NmapRunStats struct { XMLName xml.Name `xml:"runstats"` Finished NmapRunStatsFinished `xml:"finished"` }
type NmapRunStatsFinished ¶
type NmapRunStatus ¶
type PortScan ¶
type PortScan struct { Nmap // contains filtered or unexported fields }
PortScan holds information for running the port scan and provides functionality to run and get the result.
Example ¶
package main import ( "fmt" "os" "github.com/DCSO/gonmap" ) func main() { scan, err := gonmap.NewPortScan("localhost", []string{"tcp"}) if err != nil { fmt.Printf("nmap failed: %s", err) os.Exit(1) } scan.Run() f := "%5d/%s %-15s %s\n" ft := "%9s %-15s %s\n" for _, host := range scan.Result().Hosts { fmt.Printf("Nmap scan report for %s\n", host.Address.Address) fmt.Printf(ft, "PORT", "STATE", "SERVICE") for _, p := range host.Ports { fmt.Printf(f, p.Port, p.Protocol, p.Status.State, p.Service.Name) } } }
Output:
func NewPortScan ¶
NewPortScan creates a new PortScan using a target and protocols. A target can be either an IP address or a hostname. `protocols` should be a slice of strings containing 'tcp' or 'udp' or both.
func (*PortScan) Protocols ¶
Protocols returns a slice of strings containing the protocols used for performing the port scan.
func (*PortScan) Run ¶
Run executes the port scan. The result is stored and can be retrieved using the `Result()` function.
func (*PortScan) SetProtocols ¶
SetProtocols sets the protocol or protocols for performing the port scan.