Documentation
¶
Overview ¶
Package nmap parses Nmap XML data into a similary formed struct.
Index ¶
- type Address
- type CPE
- type Debugging
- type Distance
- type Element
- type ExtraPorts
- type Finished
- type Hop
- type Host
- type HostStats
- type Hostname
- type IpIdSequence
- type NmapRun
- type Os
- type OsClass
- type OsFingerprint
- type OsMatch
- type Owner
- type Port
- type PortUsed
- type Reason
- type RunStats
- type ScanInfo
- type Script
- type Sequence
- type Service
- type Smurf
- type State
- type Status
- type Table
- type Target
- type Task
- type TaskProgress
- type TcpSequence
- type TcpTsSequence
- type Times
- type Timestamp
- type Trace
- type Uptime
- type Verbose
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Address ¶
type Address struct {
Addr string `xml:"addr,attr" json:"addr"`
AddrType string `xml:"addrtype,attr" json:"addrtype"`
Vendor string `xml:"vendor,attr" json:"vendor"`
}
Address contains a IPv4 or IPv6 address for a Host.
type CPE ¶
type CPE string
CPE (Common Platform Enumeration) is a standardized way to name software applications, operating systems, and hardware platforms.
type Debugging ¶
type Debugging struct {
Level int `xml:"level,attr" json:"level"`
}
Debugging contains the debugging level for the Nmap scan.
type Distance ¶
type Distance struct {
Value int `xml:"value,attr" json:"value"`
}
Distance is the amount of hops to a particular host.
type Element ¶
type Element struct {
Key string `xml:"key,attr" json:"key"`
Value string `xml:",chardata" json:"value"`
}
Element contains the output of the script, with detailed information
type ExtraPorts ¶
type ExtraPorts struct {
State string `xml:"state,attr" json:"state"`
Count int `xml:"count,attr" json:"count"`
Reasons []Reason `xml:"extrareasons" json:"reasons"`
}
ExtraPorts contains the information about the closed|filtered ports.
type Finished ¶
type Finished struct {
Time Timestamp `xml:"time,attr" json:"time"`
TimeStr string `xml:"timestr,attr" json:"timestr"`
Elapsed float32 `xml:"elapsed,attr" json:"elapsed"`
Summary string `xml:"summary,attr" json:"summary"`
Exit string `xml:"exit,attr" json:"exit"`
ErrorMsg string `xml:"errormsg,attr" json:"errormsg"`
}
Finished contains detailed statistics regarding a finished Nmap scan.
type Hop ¶
type Hop struct {
TTL float32 `xml:"ttl,attr" json:"ttl"`
RTT float32 `xml:"rtt,attr" json:"rtt"`
IPAddr string `xml:"ipaddr,attr" json:"ipaddr"`
Host string `xml:"host,attr" json:"host"`
}
Hop is a ip hop to a Host.
type Host ¶
type Host struct {
StartTime Timestamp `xml:"starttime,attr" json:"starttime"`
EndTime Timestamp `xml:"endtime,attr" json:"endtime"`
Comment string `xml:"comment,attr" json:"comment"`
Status Status `xml:"status" json:"status"`
Addresses []Address `xml:"address" json:"addresses"`
Hostnames []Hostname `xml:"hostnames>hostname" json:"hostnames"`
Smurfs []Smurf `xml:"smurf" json:"smurfs"`
Ports []Port `xml:"ports>port" json:"ports"`
ExtraPorts []ExtraPorts `xml:"ports>extraports" json:"extraports"`
Os Os `xml:"os" json:"os"`
Distance Distance `xml:"distance" json:"distance"`
Uptime Uptime `xml:"uptime" json:"uptime"`
TcpSequence TcpSequence `xml:"tcpsequence" json:"tcpsequence"`
IpIdSequence IpIdSequence `xml:"ipidsequence" json:"ipidsequence"`
TcpTsSequence TcpTsSequence `xml:"tcptssequence" json:"tcptssequence"`
HostScripts []Script `xml:"hostscript>script" json:"hostscripts"`
Trace Trace `xml:"trace" json:"trace"`
Times Times `xml:"times" json:"times"`
}
Host contains all information about a single host.
type HostStats ¶
type HostStats struct {
Up int `xml:"up,attr" json:"up"`
Down int `xml:"down,attr" json:"down"`
Total int `xml:"total,attr" json:"total"`
}
HostStats contains the amount of up and down hosts and the total count.
type Hostname ¶
type Hostname struct {
Name string `xml:"name,attr" json:"name"`
Type string `xml:"type,attr" json:"type"`
}
Hostname is a single name for a Host.
type IpIdSequence ¶
type IpIdSequence Sequence
type NmapRun ¶
type NmapRun struct {
Scanner string `xml:"scanner,attr" json:"scanner"`
Args string `xml:"args,attr" json:"args"`
Start Timestamp `xml:"start,attr" json:"start"`
StartStr string `xml:"startstr,attr" json:"startstr"`
Version string `xml:"version,attr" json:"version"`
ProfileName string `xml:"profile_name,attr" json:"profile_name"`
XMLOutputVersion string `xml:"xmloutputversion,attr" json:"xmloutputversion"`
ScanInfo ScanInfo `xml:"scaninfo" json:"scaninfo"`
Verbose Verbose `xml:"verbose" json:"verbose"`
Debugging Debugging `xml:"debugging" json:"debugging"`
TaskBegin []Task `xml:"taskbegin" json:"taskbegin"`
TaskProgress []TaskProgress `xml:"taskprogress" json:"taskprogress"`
TaskEnd []Task `xml:"taskend" json:"taskend"`
PreScripts []Script `xml:"prescript>script" json:"prescripts"`
PostScripts []Script `xml:"postscript>script" json:"postscripts"`
Hosts []Host `xml:"host" json:"hosts"`
Targets []Target `xml:"target" json:"targets"`
RunStats RunStats `xml:"runstats" json:"runstats"`
}
NmapRun is contains all the data for a single nmap scan.
type Os ¶
type Os struct {
PortsUsed []PortUsed `xml:"portused" json:"portsused"`
OsMatches []OsMatch `xml:"osmatch" json:"osmatches"`
OsFingerprints []OsFingerprint `xml:"osfingerprint" json:"osfingerprints"`
}
Os contains the fingerprinted operating system for a Host.
type OsClass ¶
type OsClass struct {
Vendor string `xml:"vendor,attr" json:"vendor"`
OsGen string `xml"osgen,attr"`
Type string `xml:"type,attr" json:"type"`
Accuracy string `xml:"accurancy,attr" json:"accurancy"`
OsFamily string `xml:"osfamily,attr" json:"osfamily"`
CPEs []CPE `xml:"cpe" json:"cpes"`
}
OsClass contains vendor information for an Os.
type OsFingerprint ¶
type OsFingerprint struct {
Fingerprint string `xml:"fingerprint,attr" json:"fingerprint"`
}
OsFingerprint is the actual fingerprint string.
type OsMatch ¶
type OsMatch struct {
Name string `xml:"name,attr" json:"name"`
Accuracy string `xml:"accuracy,attr" json:"accuracy"`
Line string `xml:"line,attr" json:"line"`
OsClasses []OsClass `xml:"osclass" json:"osclasses"`
}
OsMatch contains detailed information regarding a Os fingerprint.
type Owner ¶
type Owner struct {
Name string `xml:"name,attr" json:"name"`
}
Owner contains the name of Port.Owner.
type Port ¶
type Port struct {
Protocol string `xml:"protocol,attr" json:"protocol"`
PortId int `xml:"portid,attr" json:"id"`
State State `xml:"state" json:"state"`
Owner Owner `xml:"owner" json:"owner"`
Service Service `xml:"service" json:"service"`
Scripts []Script `xml:"script" json:"scripts"`
}
Port contains all the information about a scanned port.
type PortUsed ¶
type PortUsed struct {
State string `xml:"state,attr" json:"state"`
Proto string `xml:"proto,attr" json:"proto"`
PortId int `xml:"portid,attr" json:"portid"`
}
PortsUsed is the port used to fingerprint a Os.
type RunStats ¶
type RunStats struct {
Finished Finished `xml:"finished" json:"finished"`
Hosts HostStats `xml:"hosts" json:"hosts"`
}
RunStats contains statistics for a finished Nmap scan.
type ScanInfo ¶
type ScanInfo struct {
Type string `xml:"type,attr" json:"type"`
Protocol string `xml:"protocol,attr" json:"protocol"`
NumServices int `xml:"numservices,attr" json:"numservices"`
Services string `xml:"services,attr" json:"services"`
ScanFlags string `xml:"scanflags,attr" json:"scanflags"`
}
ScanInfo contains informational regarding how the scan was run.
type Script ¶
type Script struct {
Id string `xml:"id,attr" json:"id"`
Output string `xml:"output,attr" json:"output"`
Tables []Table `xml:"table" json:"tables"`
Elements []Element `xml:"elem" json:"elements"`
}
Script contains information from Nmap Scripting Engine.
type Sequence ¶
type Sequence struct {
Class string `xml:"class,attr" json:"class"`
Values string `xml:"values,attr" json:"values"`
}
Sequence contains information regarding the detected X sequence.
type Service ¶
type Service struct {
Name string `xml:"name,attr" json:"name"`
Conf int `xml:"conf,attr" json:"conf"`
Method string `xml:"method,attr" json:"method"`
Version string `xml:"version,attr" json:"version"`
Product string `xml:"product,attr" json:"product"`
ExtraInfo string `xml:"extrainfo,attr" json:"extrainfo"`
Tunnel string `xml:"tunnel,attr" json:"tunnel"`
Proto string `xml:"proto,attr" json:"proto"`
Rpcnum string `xml:"rpcnum,attr" json:"rpcnum"`
Lowver string `xml:"lowver,attr" json:"lowver"`
Highver string `xml:"hiver,attr" json:"hiver"`
Hostname string `xml:"hostname,attr" json:"hostname"`
OsType string `xml:"ostype,attr" json:"ostype"`
DeviceType string `xml:"devicetype,attr" json:"devicetype"`
ServiceFp string `xml:"servicefp,attr" json:"servicefp"`
CPEs []CPE `xml:"cpe" json:"cpes"`
}
Service contains detailed information about a Port's service details.
type Smurf ¶
type Smurf struct {
Responses string `xml:"responses,attr" json:"responses"`
}
Smurf contains repsonses from a smurf attack. I think. Smurf attacks, really?
type State ¶
type State struct {
State string `xml:"state,attr" json:"state"`
Reason string `xml:"reason,attr" json:"reason"`
ReasonTTL float32 `xml:"reason_ttl,attr" json:"reason_ttl"`
ReasonIP string `xml:"reason_ip,attr" json:"reason_ip"`
}
State contains information about a given ports status. State will be open, closed, etc.
type Status ¶
type Status struct {
State string `xml:"state,attr" json:"state"`
Reason string `xml:"reason,attr" json:"reason"`
ReasonTTL float32 `xml:"reason_ttl,attr" json:"reason_ttl"`
}
Status is the host's status. Up, down, etc.
type Table ¶
type Table struct {
Key string `xml:"key,attr" json:"key"`
Elements []Element `xml:"elem" json:"elements"`
Table []Table `xml:"table" json:"tables"`
}
Table contains the output of the script in a more parse-able form. ToDo: This should be a map[string][]string
type Target ¶
type Target struct {
Specification string `xml:"specification,attr" json:"specification"`
Status string `xml:"status,attr" json:"status"`
Reason string `xml:"reason,attr" json:"reason"`
}
Target is found in the Nmap xml spec. I have no idea what it actually is.
type Task ¶
type Task struct {
Task string `xml:"task,attr" json:"task"`
Time Timestamp `xml:"time,attr" json:"time"`
ExtraInfo string `xml:"extrainfo,attr" json:"extrainfo"`
}
Task contains information about started and stopped Nmap tasks.
type TaskProgress ¶
type TaskProgress struct {
Task string `xml:"task,attr" json:"task"`
Time Timestamp `xml:"time,attr" json:"time"`
Percent float32 `xml:"percent,attr" json:"percent"`
Remaining int `xml:"remaining,attr" json:"remaining"`
Etc Timestamp `xml:"etc,attr" json:"etc"`
}
TaskProgress contains information about the progression of a Task.
type TcpSequence ¶
type TcpSequence struct {
Index int `xml:"index,attr" json:"index"`
Difficulty string `xml:"difficulty,attr" json:"difficulty"`
Values string `xml:"vaules,attr" json:"vaules"`
}
TcpSequence contains information regarding the detected tcp sequence.
type TcpTsSequence ¶
type TcpTsSequence Sequence
type Times ¶
type Times struct {
SRTT string `xml:"srtt,attr" json:"srtt"`
RTT string `xml:"rttvar,attr" json:"rttv"`
To string `xml:"to,attr" json:"to"`
}
Times contains time statistics for an Nmap scan.
type Timestamp ¶
Timestamp represents time as a UNIX timestamp in seconds.
func (Timestamp) MarshalJSON ¶
func (Timestamp) MarshalXMLAttr ¶
func (*Timestamp) UnmarshalJSON ¶
type Trace ¶
type Trace struct {
Proto string `xml:"proto,attr" json:"proto"`
Port int `xml:"port,attr" json:"port"`
Hops []Hop `xml:"hop" json:"hops"`
}
Trace contains the hops to a Host.