overflow_discovery/api/module/discovery/model/discovery.go
crusader 18fe18ccef ing
2017-11-22 15:33:41 +09:00

58 lines
1.3 KiB
Go

package model
type DiscoveryZone struct {
ExcludePatterns []string `json:"excludePatterns"`
DiscoveryHost *DiscoveryHost `json:"discoveryHost"`
}
type DiscoveryHost struct {
FirstScanRange string `json:"firstScanRange"`
LastScanRange string `json:"lastScanRange"`
ExcludeHosts []string `json:"excludeHosts"`
IncludeHosts []string `json:"includeHosts"`
DiscoveryPort *DiscoveryPort `json:"discoveryPort"`
}
type DiscoveryPort struct {
FirstScanRange int `json:"firstScanRange"`
LastScanRange int `json:"lastScanRange"`
ExcludePorts []int `json:"excludePorts"`
IncludeTCP bool `json:"includeTCP"`
IncludeUDP bool `json:"includeUDP"`
DiscoveryService *DiscoveryService `json:"discoveryService"`
}
func (dp *DiscoveryPort) Contains(port int) bool {
if dp.FirstScanRange < port {
return false
}
if dp.LastScanRange > port {
return false
}
for _, p := range dp.ExcludePorts {
if p == port {
return false
}
}
return true
}
type DiscoveryService struct {
IncludeServices []string `json:"includeServices"`
}
/*
Dzone --> zone --> Dhost --> host --> Dport --> port --> Dservice --> service
zone --> Dhost --> host --> Dport --> port --> Dservice --> service
host --> Dport --> port --> Dservice --> service
port --> Dservice --> service
*/